3分钟简单了解 prototype 和 __proto__
生活随笔
收集整理的這篇文章主要介紹了
3分钟简单了解 prototype 和 __proto__
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
關(guān)于prototype
1. 所有的函數(shù)都會有一個prototype屬性,屬性值是一個普通對象;
2. 當(dāng)我們?nèi)ew一個構(gòu)造函數(shù)的實例時,構(gòu)造函數(shù)的原型對象(prototype)會被賦值給它實例的[[Prototype]]屬性上;
3. prototype可被稱為“顯式原型”。
?
關(guān)于__proto__
1. 首先它未被ECMAScript標(biāo)準(zhǔn)化,但卻被被大多數(shù)瀏覽器廠商所支持;
2. 所有對象(null,undefined除外)都具有__proto__屬性;
3. 對象的__proto__屬性指向它的構(gòu)造器的prototype屬性;
4. __proto__ 可被稱為“隱式原型”;
5. ES2015對其進(jìn)行了標(biāo)準(zhǔn)化。
?
關(guān)于兩者
1 // 普通函數(shù) 2 function func() {} 3 4 func.prototype // { constructor: function func(), ... } 5 6 // 構(gòu)造函數(shù) 7 function F() {} 8 9 F.prototype // { constructor: function func(), ... } 10 11 // 實例測試 12 var f = new F() 13 14 f.__proto__ // { constructor: function func(), ... } 15 16 f.__proto__ === F.prototype // true 17 18 // ES2015標(biāo)準(zhǔn)化[[Prototype]]屬性,Object.getPrototypeOf/Object.setPrototypeOf 19 Object.getPrototypeOf(f) === F.prototype?
更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com
總結(jié)
以上是生活随笔為你收集整理的3分钟简单了解 prototype 和 __proto__的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js替换数组中字符串实例
- 下一篇: 《黑客攻防技术宝典Web实战篇@第2版》