我正在阅读Javascript这本书的好部分并且有一个例子
Function.prototype.method = function(name, func){
this.prototype[name] = func;
// this.prototype.name = func;
return this;
};
Number.method("integer", function(){
return Math[this<0 ? "ceiling" : "floor"](this);
});
document.writeln((10/3).integer());
Run Code Online (Sandbox Code Playgroud)
我以为this.prototype [name] = func; 和this.prototype.name = func; 是相同的,但似乎他们不是.
当我在Chrome中运行注释掉的语句时,显示错误
"未捕获的TypeError:undefined不是函数"
那声明怎么了?是不是将func分配给了名字?
谢谢
表达方式
this.prototype.name = func;
Run Code Online (Sandbox Code Playgroud)
为原型对象的"name"属性赋值.相比之下,这
this.prototype[name] = func;
Run Code Online (Sandbox Code Playgroud)
为属性赋值,该属性的名称由变量"name"的字符串值确定.不同之处在于,通过简单的.引用,标识符本身被视为属性名称.使用时[],括号内的表达式将被计算,并将其视为属性名称.
请注意,您的"整数"方法明确地利用了这种行为只需几行!
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |