也许这是一个疯狂的问题,但是像:
var MyPrototypeObject {
prop: 0;
};
var ob1 = Object.create(MyPrototypeObject);
var ob2 = {
meth: function() {
this.prop = 5; // update prop
return this.prop;
}
};
其中Object.create克隆原型,而$.extend用于向ob1
添加其他方法,其中this.prop
指向原型?添加新方法的最佳方法是什么?
$.extend(ob1, ob2);
答案 0 :(得分:1)
pd-style类似,建议
var SomeProto = {
prop: 0;
};
var ob1 = extend(Object.create(SomeProto), {
meth: function meth() {
return (this.prop = 5); // update prop
}
});
这是在JavaScript中处理OO的有效方法。请注意,$.extend
是执行此操作的糟糕实现,因为它具有isPlainObject
检查,该检查为具有原型的对象返回false