据我所知,在将多个函数添加到对象的原型之间,JavaScript没有功能上的区别,如下所示:
MyObject.prototype.myFunction = function() {
return this.foo + this.bar;
}
MyObject.prototype.otherFunction = function() {
return this.foo * this.bar;
}
或者这个:
MyObject.prototype = {
myFunction: function() {
return this.foo + this.bar;
},
otherFunction: function() {
return this.foo * this.bar;
}
}
有没有理由使用一个而不是另一个?对我来说,第二个选项更清晰,因为所有函数声明都在缩进方面位于原型的“内部”。这似乎主要是一种风格问题;是否有遵循惯例?
答案 0 :(得分:0)
使用
MyObject.prototype = { }
将覆盖先前定义的方法,属性和继承。所以你可以使用
Object.assign(MyObject.prototype, {
/*...*/
});
然后。我更喜欢将所有原型方法保存在一起,所以我会选择这个变体,而不是仅仅自己分配每个方法。
答案 1 :(得分:0)
我更喜欢所有情况下的第一个选项,因为它更具扩展性和防错性。在第一种情况下,您将添加到MyObject的原型,在第二种情况下,您将覆盖它。