小测试来检验一下你原型链理解的怎么样。
提問:
person1.__proto__ 是什么?
?Person.__proto__ 是什么? Person.prototype.__proto__ 是什么? Object.__proto__ 是什么? Object.prototype__proto__ 是什么?答案:
第一題:
因為 person1.__proto__ === person1 的構造函數.prototype
因為 person1的構造函數 === Person
所以 person1.__proto__ === Person.prototype
?
第二題:
因為 Person.__proto__ === Person的構造函數.prototype
因為 Person的構造函數 === Function
所以 Person.__proto__ === Function.prototype
?
第三題:
Person.prototype 是一個普通對象,我們無需關注它有哪些屬性,只要記住它是一個普通對象。
因為一個普通對象的構造函數 === Object
所以 Person.prototype.__proto__ === Object.prototype
?
第四題,參照第二題,因為 Person 和 Object 一樣都是構造函數
?
第五題:
Object.prototype 對象也有proto屬性,但它比較特殊,為 null 。因為 null 處于原型鏈的頂端,這個只能記住。
Object.prototype.__proto__ === null
?
?JS 在創建對象(不論是普通對象還是函數對象)的時候,都有一個叫做__proto__ 的內置屬性,用于指向創建它的構造函數的原型對象。
對象 person1 有一個 __proto__屬性,創建它的構造函數是 Person,構造函數的原型對象是 Person.prototype ,所以:
person1.__proto__ == Person.prototype
?所有函數對象的__proto__都指向Function.prototype,它是一個空函數(Empty function);
引用了下面的內容:
作者:Yi罐可樂
鏈接:http://www.jianshu.com/p/652991a67186
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
轉載于:https://www.cnblogs.com/wangxi01/p/7872563.html
總結
以上是生活随笔為你收集整理的小测试来检验一下你原型链理解的怎么样。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue,一路走来(14)--短信验证码框
- 下一篇: cityofstars歌词是口语化的吗