哪个是更好的Javascript对象模式......
function dog(name) {
this.name = name;
this.getName = function() {
return this.name;
};
};
Run Code Online (Sandbox Code Playgroud)
要么
function cat(name) {
this.name = name;
};
cat.prototype.getName = function() {
return this.name;
};
Run Code Online (Sandbox Code Playgroud)
为什么?
-----编辑
一个或另一个使用更多内存吗?
是一个或多或少"CPU"密集比另一个?
哪个更易于维护?
哪个更具可扩展性?
哪个更具可读性?
这里只是个人意见...但我更喜欢“狗”风格的表示法以实现长期可维护性。
所有“狗”代码都包含在狗定义中。想象一下 5 年后,“下一个人”被指示删除 hasTail 属性。无论有多少其他对象/属性/等。从现在到那时都被定义了,他会在狗的定义中找到它。
为了进行比较......想象一下 5 年后,“下一个人”被指示从“cat”中删除 hasTail 属性。他必须扫描/grep/ctl+f 动物.js 文件中的 hasTail,并希望他删除正确的文件。