js原型對象,每個new出來的新對象都有獨立的原型對象__proto__


剛才看一篇博文的時候, 動手測試了一下 JavaScript的原型鏈, 原型對象,發現每個構造器(賦給了某個 prototype ) new 出來的對象都有各自獨立的原型對象 __proto__.

prototype 與 __proto__指向的都是同一個對象,一個是“類”上面的,一個是“對像”上面的。 prototype 從字面上“type”就說明了,這個代表一個“類”, 是一個類別、集合,而不是具體的。

類似於 C++語言中類與對象的關系。 而__proto__就是根據具體 的類“prototype” , 實例化處理的具體的某個對象, 通過prototype new不同的對象的__proto__是彼此獨立的。。

 好像錯了!!看下圖

錯了,錯了,原來下面這種測試代碼理解錯了。 我們給 s.name 賦值的時候,並沒有去改到s.__proto__這個對象的name屬性。而是 給s對象新增了 name 屬性。其輸出 s.name的時候,

並沒有去 s.__proto__上面找 name 屬性,而是直接在 s 對象本身上面就發現了 name 屬性, 所以並不會向上在s.__proto__原型鏈上去找name 屬性。!!剛才理解錯了,還好反應過來了。

測試代碼 如下:

function Fun(){
  //構造器
};
Fun.prototype = {
 name : 'ysr'
};

var s  = new Fun();
s.name = 'pxk';
console.log(s.name); //pxk
var t = new Fun();
console.log(t.name); //ysr

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM