javascript - 如何理解prototype和__proto__的區別呢?
問題描述
如何理解prototype和__proto__的區別呢?
問題解答
回答1:構造函數訪問原型時,通常通過prototype來訪問,例如我們往原型上添加方法
Person.prototype.getName = function() {}
當new出來的實例訪問原型時,在一些支持的瀏覽器中
function Person() {}var p1 = new Person();p1.__proto__ === Person.prototype // true
結論:prototype是作為構造函數去訪問原型,而__proto__是作為實例去訪問原型。當自身身份不一樣,即使一個方法同時調用兩者時,訪問到的可能是不同的原型。
回答2:每個對象都有__proto__,而prototype只有Function有;
回答3:也許你也可以看看這些:
/a/11...
https://developer.mozilla.org...
https://developer.mozilla.org...
回答4:prototype 是構造函數的一個屬性,__proto__ 是實例的一個屬性。使用構造函數生成的實例的 __proto__ 屬性會指向構造函數 prototype 屬性所指向的對象。
嗯,就是這樣。
回答5:從作用上來說:prototype 確定了當利用構造器或字面量形式定義對象時 proto 的默認值
proto 是 js 引擎原型鏈搜索的依據
所以重點在于當你要更改原型鏈的搜索方式時,可以通過更改構造器 prototype 來改變后續所有實例化對象的原型鏈查找方式,利用 proto 來修改單個對象的原型鏈查找.
相關文章:
1. 運行python程序時出現“應用程序發生異常”的內存錯誤?2. macos - 無法source activate python273. css3 讓圖片變成灰色(filter),但針對IE11瀏覽器無效4. java - butterknife怎么綁定多個view5. java - 同步/異步與阻塞/非阻塞之間的差異具體是什么?6. android - Genymotion 模擬器可以做屏幕適配檢測嗎?7. html5 - 前端面試碰到了一個緩存數據的問題,來論壇上請教一下8. javascript - 打算寫一個c++的node圖像處理模塊,有沒有推薦的c++圖片處理庫?9. html - vue里面:src在IE(9-11)下不顯示圖片10. 我在導入模板資源時遇到無法顯示的問題,請老師解答下

網公網安備