javascript
JS 原型链简述
原型鏈看了網上的一些文章還是沒看懂。。然后自己去翻了下JavaScript高級程序設計里面講的章節,這里總結了一下,歡迎指正:
每個function都有一個原型prototype,該原型其實就是一個class,有它的構造函數,也可以定義其他成員方法,但是這里有一點不一樣的是,一般在function里面賦值成員變量,不需要定義可直接使用,而在原型里是找不到該成員變量的,也就是說一個function它的prototype就是一個不包含它自己的成員變量的class而已,當然記得它的構造函數指向的是它本身。
 而如果實現原型鏈,則是將另一個function的原型指向它要繼承的function的new對象,這里可能有有點難理解,但是我接下來說的話可能會幫助你理解它:之前說過一個function的原型其實就是個變種class,子類function的原型指向了超類的function的new對象(該對象其實就是超類的class的實例),也就是說第二個function的原型里面包含了一個指向它的超類function的原型(通過new一個對象去賦值實現了將子類原型包含超類原型的指針,也就是繼承),然后由于子類原型本身就有構造方法,所以現在子類的原型里面應該有的東西是:一個指向超類原型的指針,不定數個超類的成員變量(之前說過一個function的原型不包含它本身的成員變量所以既然繼承后子類應該需要具有超類的成員變量),一個指向它本身的構造函數。一共是三種,這是你也可以給子類的原型增加新的成員方法,來重復跟上次一樣的操作。
總結:function就是一個類似對象的東西,它的成員變量賦值在它的構造函數里,它的構造方法和成員方法定義在原型,若被繼承后,其子類的構造跟它幾乎一樣,只是在原型多了一個指針來對應它的超類的原型,這里的繼承通過賦值一個function的原型為要繼承的function的new對象來實現。
總結
 
                            
                        - 上一篇: [附源码]SSM计算机毕业设计高校教师教
- 下一篇: 基于android的教学助手
