javascript - `this` 和 `prototype` 有什么区别? javascript 哎呀

标签 javascript oop

<分区>

在 codecademy.com 上学习 javascript 类(class)时,我变得有点困惑。

首先我们学习了如何向类中添加方法:

function Dog (breed) {
    this.breed = breed;
    this.sayHello = function () {
        console.log("Hello this is a " + this.breed + " dog");
    }
};
var someDog = new Dog("golden retriever");
someDog.sayHello();

然后我们开始“原型(prototype)”。还有这个例子:

function Dog (breed) {
    this.breed = breed;
};
Dog.prototype.sayHello = function () {
    console.log("Hello this is a " + this.breed + " dog");
}
var someDog = new Dog("golden retriever");
someDog.sayHello();

两个例子都给出了相同的结果。 这两个例子只是做同一件事的两种方式吗?或者两者之间存在实际差异?

最佳答案

不同之处在于,在第二种情况下,所有实例共享相同的sayHello 函数。这样效率更高,尤其是在您创建大量实例的情况下。

关于javascript - `this` 和 `prototype` 有什么区别? javascript 哎呀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19468725/

相关文章:

javascript 对象原型(prototype) this 引用

oop - 如何混合明显不兼容的范例 : OOP and FP?

Python:跨模块和 shell 共享对象

c++ - 处理组合关系中的变量

javascript - 新方法看不到 "this"(JavaScript)

java - 在类构造函数中存储数据时遇到问题,学习 OOP

javascript - 当我传递动态 ID 时, View 未在 Angular js 中更新

javascript - 浏览器后退和前进以及表单自动完成困惑

javascript - 将 tr 附加到表会使用 javascript 将新的 tbody 附加到 html 表

Javascript Intval 显示/隐藏闪烁