我试图理解创建和使用对象的“JavaScript 方式”,我认为我遇到了对对象和原型的误解。
在我开始的一个新项目中,我决定尝试原型继承。我很困惑这是否意味着我应该只创建一个我打算使用的对象,然后基于该对象创建其他对象,Object.create()
例如:
var labrador = {
color: 'golden',
sheds: true,
fetch: function()
{
// magic
}
};
var jindo = Object.create(dog);
jindo.color = 'white';
或者,如果我应该创建一种类并使用Object.create()
.
var Dog = { // Is this class-like thing a prototype?
color: null,
sheds: null,
fetch: function()
{
// magic
}
};
var labrador = Object.create(Dog);
labrador.color = 'golden';
labrador.sheds = true;
var jindo = Object.create(Dog);
jindo.color = 'white';
jindo.sheds = true;
在基于类的 OOP 方面有更多经验,后一种方法对我来说感觉更舒服(也许这就是足够的理由)。但我觉得原型继承的精神更多地出现在第一种选择中。
哪种方法更符合原型编程的“精神”?还是我完全错过了重点?