日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

JavaScript之继承模式,命名空间,对象枚举

發(fā)布時(shí)間:2023/12/10 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)自己的原型
Father.prototype.lastName = 'deng'; function Father() { } function Son() { }var son = new son(); son.prototype = Father.prototype; // 共享的核心代碼,即誰(shuí)都可以共享Father

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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。