我们什么时候应该在对象的原型和对象本身中定义函数?

时间:2014-07-07 19:43:54

标签: javascript

具体来说,我不明白为什么有些方法需要.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}}

1 个答案:

答案 0 :(得分:0)

Foo是一个构造函数。如果您想像Foo.valueOf那样致电x.slice,可以设置Foo.valueOf,但这不是此代码完成的内容;它表示使用Foo构建的任何对象都应该继承那里定义的valueOf。所以:

var x = new Foo(42);
x.valueOf() === 42 // true