我正在阅读面向对象的 JS,并试图了解基于原型的继承在我的情况下是否最好。我刚刚在这里阅读了 Eric Elliot 关于这种方法优于经典模式的文章
就我而言,我必须建模,比如说 10,000 个type or class
被调用的实例Shape
。我需要每个对象都保持其状态,比如说size
。使用克隆来扩展原型(Eric 帖子中的第二个方法)会导致方法也被克隆吗?从他的例子中,
var proto = {
hello: function hello() {
return 'Hello, my name is ' + this.name;
}
};
var george = _.extend({}, proto, {name: 'George'});
在上述情况下,创建 10,000 个实例是否会将 hello 克隆到所有实例中?
如果是这种情况,对我来说最好的方法是什么。Mytype/class
拥有 10 个原始值,并且更多地充当数据的持有者而不是抽象行为。要求,
- 每个实例都保留私有数据。
- 有一些常用方法来获取/设置这些数据(或只是属性)
- 易于转换为 Json