摘要:如何理解和原型空間我們知道在中萬物皆對象現在我們假設每一個對象創建時都會產生一個原型空間原型對象現在我們記住三句話實例由其定義共享原型空間由來尋找定義的原型空間由來尋找自己的原型空間實例由其定義共享原型空間此圖片為轉載此圖片為轉載
(如何理解_proto_和prototype) 原型空間
我們知道在js中萬物皆對象,現在我們假設每一個對象創建時都會產生一個原型空間(原型對象 )
實例由其定義共享原型空間
由__proto__來尋找定義的原型空間
由prototype來尋找自己的原型空間
ps
p:prototype [p]: _proto_ 此圖片為轉載
此圖片為轉載
所有函數都是由Function構造函數構造的
function函數也是Function構造函數構造的所以時function自己構造了自己所以自己指向自己的原型空間
我們可以看出圖中function的原型空間和animal的原型空間都是object類型(其實第二列的原型空間都是object的實例,但邏輯上不是)
//所有函數類型的隱式原型都相同 因為都是Function的原型對象創建 //所以構造函數的__proto__是Function //那么Function的隱式原型 ? var fun = new Function(); console.log(fun.__proto__===Function.prototype); console.log(Function.__proto__===Function.prototype); //所以Function本身的隱式原型和顯示原型相同 //可以看出Object也是函數定義的所以他的隱士原型應該是Function 的顯示原型 console.log(Object.__proto__===Function.prototype)
那么object的原型空間的原型空間應該是undefined但這樣就會讓原型鏈沒有盡頭
為了邏輯完善就令其為null
可以看出原形空間的定義是由其定義的原型空間來定義的(實例和其定義共享原型空間)
function Animal(){} function Bird(){} function Swallow(){} Bird.prototype= new Animal() Swallow.prototype=new Bird() var swallow = new Swallow() console.log(swallow.__proto__.prototype) console.log(Swallow.__proto__.prototype) console.log(Bird.__proto__.prototype) console.log(Animal.__proto__.prototype) console.log(Function.prototype.__proto__.prototype) console.log(Swallow.prototype) console.log(Animal.prototype) var animal = new Animal console.log(animal.__proto__.__proto__) var obj = {} console.log(typeof (obj.__proto__.__proto__)) ////ps沒有修正construct
那么若假設Pobject來定義了Object的原型空間的原型空間那么圖中所有的(undefined)的位置的_proto_都會指向Pobject的原型空間以這個邏輯就可以讓無限迭代下去(指針的指針的.....的指針)
這樣向上尋找原型鏈和向下尋找原型鏈就統一了,但js設計封鎖了向上無限迭代(Object的原型空間為null)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/109835.html
摘要:寫在前面如果說是一本武學典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術是從底層上去理解,那種工程師和碼農的區別就在于對底層的理解,當你寫完一行代碼,或者你遇見一個解決的速度取決于你對底層的理解。 寫在前面 如果說JavaScript是一本武學典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對九陽神功是這樣描述的:練成「九陽神功」后,會易筋洗髓;生出...
摘要:寫在前面如果說是一本武學典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術是從底層上去理解,那種工程師和碼農的區別就在于對底層的理解,當你寫完一行代碼,或者你遇見一個解決的速度取決于你對底層的理解。 寫在前面 如果說JavaScript是一本武學典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對九陽神功是這樣描述的:練成「九陽神功」后,會易筋洗髓;生出...
摘要:寫在前面如果說是一本武學典籍,那么原型鏈就是九陽神功。那么,如何修煉好中的九陽神功呢真正的功法大成的技術是從底層上去理解,那種工程師和碼農的區別就在于對底層的理解,當你寫完一行代碼,或者你遇見一個解決的速度取決于你對底層的理解。 寫在前面 如果說JavaScript是一本武學典籍,那么原型鏈就是九陽神功。在金庸的武俠小說里面,對九陽神功是這樣描述的:練成「九陽神功」后,會易筋洗髓;生出...
閱讀 1271·2021-11-15 18:14
閱讀 3128·2021-08-25 09:38
閱讀 2663·2019-08-30 10:55
閱讀 2673·2019-08-29 16:39
閱讀 1305·2019-08-29 15:07
閱讀 2446·2019-08-29 14:14
閱讀 810·2019-08-29 12:36
閱讀 909·2019-08-29 11:21