我是JS的新手。如果我想将2个函数分配给一个构造函数,我是否必须通过原型两次调用函数声明?
function Shape(x, y) {
this.x= x;
this.y= y;
}
Shape.prototype.foo= function() {
return ...;
};
Shape.prototype.bar= function() {
return ...;
};
答案 0 :(得分:2)
如果我理解正确,这样的事情就可以了:
function Shape(x, y) {
this.x= x;
this.y= y;
}
Shape.prototype = {
constructor: Shape,
foo: function() {
return ...;
},
bar: function() {
return ...;
}
}
答案 1 :(得分:1)
你可以这样做,或者你可以为原型分配一个新对象(覆盖任何现有的属性/方法):
Shape.prototype = {
foo : function(){
},
bar : function(){
}
};
如果要向不同的原型添加大量方法,并且不想覆盖整个原型对象,请定义一个辅助方法来为您执行对齐:
function addToPrototype(constructor, obj){
for (var prop in obj){
constructor.prototype[prop] = obj[prop];
}
}
addToPrototype(Shape, {
foo : function(){
},
bar : function(){
}
});
addToPrototype(Shape, {
something : function(){
}
});
addToPrototype(Polygon, {
somethingElse : function(){
}
});