Javascript:原型模式类继承
生活随笔
收集整理的這篇文章主要介紹了
Javascript:原型模式类继承
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原型模式 每個函數(準確說不是類、對象)都有一個prototype屬性,這個屬性是一個指針,指向一個對象。 使用原型對象的好處是可以讓所有對象實例共享它包含的屬性和方法。 1.原型對象 (1)當創建一個新函數,就會為該函數創建一個prototype屬性,這個屬性指向函數的原型對象。 (2)默認情況下,所有原型對象都會自動獲得一個constructor(構造函數)屬性,這個屬性包含一個指向 prototype屬性所在函數 ?的指針。 (3)實例的內部包含一個指針,叫[[Prototype]]。不過這個指針對腳本則完全不可見(某些瀏覽器支持一種__proto__來訪問)。 2.代碼讀取屬性順序 首先搜索對象實例本身,沒有則繼續搜索指針指向的原型對象。 例: function Person(){ } Person.prototype.name="Javascript"; var p1 = new Person(); var p2 = new Person(); ? p1.name="lufeng"; alert(p1.name);//"lufeng" alert(p2.name);//"Javascript" 使用delete操作符可以完全刪除實例屬性。 isPrototypeOf():確定對象之間是否存在prototype關系 hasOwnProperty():檢測一個屬性是存在于實例中,還是存在原型中。 Object.keys()、Object.getOwnPropertyNames():接收一個對象作為參數,返回 一個包含所有可枚舉屬性的字符串數組。 來看個很蛋疼的類繼承(某個HTML5游戲框架): inherit : function(childClass, parentClass) { var Constructor = new Function(); Constructor.prototype = parentClass.prototype; childClass.prototype = new Constructor(); childClass.prototype.constructor = childClass; childClass.superclass = parentClass.prototype; if(childClass.prototype.constructor ==?Object.prototype.constructor) { childClass.prototype.constructor = parentClass; } } 感覺代碼看來比較亂,我畫了個圖:
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Javascript:原型模式类继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序 获取当前用户地址及地图显示
- 下一篇: java美元兑换,(Java实现) 美元