原型的簡(jiǎn)單理解

重寫(xiě)原型后的變化

盡管可以隨時(shí)為原型添加屬性和方法,并且修改能夠立即在所有對(duì)象實(shí)例中反映出來(lái),但如果是重寫(xiě)整個(gè)原型對(duì)象,那么情況就不一樣了。我們知道,調(diào)用構(gòu)造函數(shù)時(shí)會(huì)為實(shí)例添加一個(gè)指向最初原型的[[Prototype]]指針,而把原型修改為另外一個(gè)對(duì)象就等于切斷了構(gòu)造函數(shù)與最初原型之間的聯(lián)系。

請(qǐng)記?。簩?shí)例中的指針僅指向原型,而不指向構(gòu)造函數(shù)

    function Person(){}
    var friend = new Person();
    Person.prototype = {
        constructor: Person,
        name : "Nicholas",
        age : 29,
        job : "Software Engineer",
        sayName : function () {
        alert(this.name);
    }
    };
    friend.sayName(); //error

在這個(gè)例子中,我們先創(chuàng)建了 Person 的一個(gè)實(shí)例,然后又重寫(xiě)了其原型對(duì)象。然后在調(diào)用friend.sayName()時(shí)發(fā)生了錯(cuò)誤,因?yàn)閒riend指向的原型中不包含以該名字命名的屬性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容