JavaScript中的原型有什么意义?为什么不直接将方法添加到构造函数?

参见英文答案 >
Declaring javascript object method in constructor function vs. in prototype                                     3个

所以我在CodeAcademy上学习了一些关于JavaScript的课程,然后我讨论了有关原型的这一部分.

有点来自代码:

function Dog(breed){
    this.breed = breed;
};

Dog.prototype.bark = function(){
    console.log("Bark!");
    };

我不明白这样做的意义.为什么不这样做呢? (我第一次学习的方式.)

function Dog(breed){
    this.breed= breed;
    this.bark = function(){
        console.log("Bark!");
    };
}

第二种方式,一切都在一个块中,而不是分开.第一个的优势是什么?我知道有,我只是没有看到它.

最佳答案 一个区别是,在原型情况下,函数只存在一次,更改它将使用此原型更改所有对象.在这.在每个对象中重复该函数的情况.

这在足迹和语义方面都有所不同.

点赞