JS中的原型及原型鏈的一點總結

      最近兩天一直在看js中關於原型和原型鏈的內容,沒有特別理解,但自己總結了一些基礎知識點。

     1.JS中萬物皆對象,但是分爲兩大類,函數對象,普通對象

     2.所有的函數對象都有一個prototype屬性,這個屬性引用了一個對象,即原型對象,也稱原型。然而普通對象是沒有prototype屬性,只有_proto_屬性

     3.原型對象就是普通對象,(Function.prototype除外,因爲它是函數對象,但比較特殊,因爲沒有prototype屬性)

     4.類實例對象的內部_proto_指向它構造函數的prototype

     5.obj.constructor === A.prototype.constructor,就是說類的實例對象的constructor屬性永遠指向構造函數的prototype.constructor,即使A.prototype不再指向原來A的原型

     6.obj.constructor.prototype === A.prototype。當A.prototype改變,則不成立

     7.類繼承:(JS中沒有類,這裏只是指構造函數)。雖然繼承了A構造函數對象的所有屬性方法,但不能繼承A原型對象的成員,而要實現這個目的,就是在此基礎上再添加原型繼承

     8.原型對象主要用於繼承,JS在創建對象的時候,(不論是普通對象 還是函數對象),都有一個叫做_proto_的內置屬性,用於指向創建它的函數對象的原型對象prototype

     9.原型對象prototype中都有個預定義的constructor屬性,用於引用它的函數對象。比如說:person.prototype.constructor === person。

    10.Object.constructor === Function。如何查找一個對象的constructor,就是在該對象的原型鏈上尋找碰到的第一個constructor屬性所指向的對象

    11.原型和原型鏈是JS實現繼承的一種模型

    12.原型鏈的形成是靠_proto_,而不是prototype

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章