所以我在CodeAcademy上通過JavaScript學習了幾節課,並且我碰到了關於原型的這一節。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!");
};
}
第二種方式,一切都在一個塊中,並且沒有分開。第一個的優點是什麼?我知道有,我只是沒有看到它。
@ user1768884:這是一個非常好的問題。這裏有不少人能夠給出令人驚訝的詳細答案這樣的問題!希望能夠看到答案。 –
對於你的小例子來說,它並不重要,它對原型沒有任何意義,但想象你有許多要創建的對象,並且可以使用一個通用對象作爲模板,然後在該通用模板上創建原型,一旦你改變了這個通用模板,所有其他的對象也會自動更新,那麼它對你來說就更有意義了,你就會明白爲什麼原型設計很好,並且可以爲你節省大量的工作。 – adeneo