哪个是更好的
Javascript对象模式……
function dog(name) { this.name = name; this.getName = function() { return this.name; }; };
要么
function cat(name) { this.name = name; }; cat.prototype.getName = function() { return this.name; };
为什么?
—–编辑
一个或另一个使用更多内存吗?
是一个或多或少“cpu”密集比另一个?
哪个更易于维护?
哪个更具可扩展性?
哪个更具可读性?
解决方法
除了偏好,第二个例子是“正确的”.在第一个中,您将为每个对象创建一个新的getName函数.在2中,使用此构造函数创建的所有对象将共享prototype / getName.在一个地方更改它,它将为每个实例更改.
在特殊场合(如复杂的继承链),您可能需要使用第一个,但要注意它的缺点.
This blog post可能会帮助您更好地理解原型继承.