當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
JavaScript之继承模式,命名空间,对象枚举
生活随笔
收集整理的這篇文章主要介紹了
JavaScript之继承模式,命名空间,对象枚举
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
繼承發(fā)展史
1-傳統(tǒng)形式 → 原型鏈
- 過(guò)多的繼承了沒(méi)用的屬性(很好理解,不用代碼演示了)
2-借用構(gòu)造函數(shù)
- ?不能繼承借用構(gòu)造函數(shù)的原型(很好理解,不用代碼演示了)
- 每次構(gòu)造函數(shù)都要奪走一個(gè)函數(shù)(很好理解,不用代碼演示了)
3-共享原型
- 不能隨便改動(dòng)自己的原型
4-圣杯模式
//圣杯模式 function innherit(Target, Origin) {function F() {};F.prototype = Origin.prototype;Target.prototype = new F(); } Father.prototype.lastName = 'deng'; function Father() {} function Son() {} inherit (Son, Father); var son = new son(); var father = new Father();\\指向紊亂了 son.__proto__ --> new F().__rpoto__ --> Father.prototype\\改正紊亂 function innherit(Target, Origin) {function F() {};F.prototype = Origin.prototype;Target.prototype = new F();Target.prototype.constructor = Target; //讓繼承類(lèi)的指向歸位Target.prototype.uber = Origin.prototype; //讓這個(gè)類(lèi)知道它繼承的超類(lèi)是誰(shuí)? }雅虎的Y庫(kù)提供的一個(gè)開(kāi)源代碼
var inherit = (function () {var F = function () {};return function (Target, Origin) {F.prototype = Origin.prototype;Target.prototype = new F();Target.prototype.constructor = Target;Target.prototype.uber = Origin.prototype;} }())?
總結(jié)
以上是生活随笔為你收集整理的JavaScript之继承模式,命名空间,对象枚举的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 299. Bulls
- 下一篇: java json.stringify_