javascript - 哪个更好的Javascript对象模式

标签 javascript object

<分区>

哪个是更好的 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可能会帮助您更好地理解原型(prototype)继承。

关于javascript - 哪个更好的Javascript对象模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7143033/

相关文章:

java - 正确设计 Java 类

javascript - 获取数组内对象的名称

javascript - 如何在提交时进行 ajax 调用并确保 html5 验证也发生

javascript - querySelectorAll 不适用于指定元素

javascript - 如何将焦点设置为独立于 id 的 HTML 表单中的第一个输入元素?

javascript - 使用 Ajax 更新 Rails 中的 'like' 计数

javascript - 键盘消除后退按钮事件 - Android

java - 无法比较的类型(int 和 obj)(bug?)

使用 'this' 的 JavaScript 对象

javascript - 使用javascript合并数组中具有间隔属性的重叠对象