具体来说,我不明白为什么有些方法需要.prototype
在他们面前而其他方法则不需要var Foo = function(value) {
this.val = value;
}
Foo.prototype.valueOf = function() {
return this.val;
}
。我正在练习一个正确答案的代码
Foo.prototype.valueOf
我想知道为什么需要Foo.valueOf
中的原型,为什么你不能简单地只做x.slice(2,4)
?这是我之前用其他原型做的事情。例如,我执行x.prototype.slice(2,4).
而不是{{1}}
答案 0 :(得分:0)
Foo
是一个构造函数。如果您想像Foo.valueOf
那样致电x.slice
,可以设置Foo.valueOf
,但这不是此代码完成的内容;它表示使用Foo
构建的任何对象都应该继承那里定义的valueOf
。所以:
var x = new Foo(42);
x.valueOf() === 42 // true