javascript的问题"原型"在书签.我需要图书馆吗?
Trouble with javascript "prototype" in bookmark. Do I need a library?
我试图使用一个Javascript "原型",就像这里所示:https://stackoverflow.com/a/17306971/606539
作为测试,我在Firefox的"Bookmarklet"中放置了以下代码。
javascript:(function(){Array.prototype.clear=function(){while(this.length>0){this.pop();}}var yy=[1,2,3];alert('yy=:"'+yy+'"');yy.clear();alert('yy=:"'+yy+'"');})()
为便于阅读,它的格式如下:
javascript:
(function(){
Array.prototype.clear=function(){
while(this.length>0){
this.pop();
}
}
var yy=[1,2,3];
alert('yy=:"'+yy+'"');
yy.clear();
alert('yy=:"'+yy+'"');
}
)()
当我把这段代码放到书签中,然后点击它,我得到"nothing"。我甚至没有看到第一个"警报"。代码中似乎有一些错误。通常,这可能是缺少"结束引号",或者缺少";"或"}",或者拼写错误,或者其他打字错误。
我已经检查了代码,没有发现任何问题。
如果我重新编写代码以删除"prototype",它会工作得很好:
javascript:
(function(){
function aryclear(A){
while(A.length>0){
A.pop();
}
}
var yy=[1,2,3];
alert('yy=:"'+yy+'"');
aryclear(yy);
alert('yy=:"'+yy+'"');
}
)()
我错过什么了吗?我需要加载一些库这个工作吗?
编辑:
@msarchet回答中的解释几乎是正确的,代码更正是完全正确的。这是一个很大的帮助,因为它指出了缺失的分号,给了我一些搜索的东西。之前的搜索没有发现任何有用的信息。
这个问题可以在下面的答案中描述:我们是否需要在函数声明后加一个分号?当声明原型函数或函数语句时,在结束的}
后面需要一个分号。
在您的单行中,您需要在原型结束后使用分号
终止}
。(function(){ Array.prototype.clear=function(){ while(this.length>0){ this.pop(); } }; var yy=[1,2,3];alert('yy=:"'+yy+'"');yy.clear();alert('yy=:"'+yy+'"');})()
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 插入“;img src"在javascript中