<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      先來看一下傳統(tǒng)的面向類式的寫法:
      function Foo(name) { this.name = name; } Foo.prototype.sayName = function() { console.log('name: ' + this.name) } function Bar(name, age) { Foo.call(this, name); this.age = age; } Bar.prototype = Object.create(Foo.prototype); Bar.prototype.sayAge = function() { console.log('age: ' + this.age) } var bar1 = new Bar('bar1', 13); bar1.sayName(); bar1.sayAge();
      這里的Object.create也可以替換成Object.setPrototypeOf,但是我們這里并不care它的constructor指向是否正確,所以從可讀性的角度我們用Object.create。(why ? 請參考上一篇)
      上面是傳統(tǒng)的,也是最為推崇的寄生組合式繼承模式,但是es6誕生以后,這種寫法就不再流行了,更多的是利用class的語法糖,我們來看代碼:
      class Foo { constructor(name) { this.name = name; } sayName() { console.log('name: ' + this.name); } } class Bar extends Foo { constructor(name, age) { super(name); this.age = age; } sayAge() { console.log('age: ' + this.age); } } var bar3 = new Bar('bar3', 15); bar3.sayName(); bar3.sayAge();
      class的語法優(yōu)勢在于沒有了prototype的混亂,很輕松地實現(xiàn)繼承,利用super方法輕松實現(xiàn)構(gòu)造函數(shù)的復(fù)制,等同于傳統(tǒng)的call所實現(xiàn)的效果,extends實現(xiàn)委托機制,等同于Object.create所實現(xiàn)的效果。
      但是缺陷在于加深了人們對于類以及繼承的誤解。
      我們再來看利用委托的設(shè)計模式:
      Foo = { init(name) { this.name = name }, sayName() { console.log('name: ' + this.name); } } Bar = Object.create(Foo); Bar.inits = function(name, age) { Foo.init.call(this, name); this.age = age; } Bar.sayAge = function() { console.log('age: ' + this.age); } var bar = Object.create(Bar); bar.inits('bar', 14); bar.sayName(); bar.sayAge();
      同樣,這里沒有prototype的出現(xiàn),也沒有new構(gòu)造函數(shù)調(diào)用,完全依靠委托的機制,完全是對象之間的聯(lián)系。這種設(shè)計模式要求我們不再利用多態(tài)去重寫原有的函數(shù)或?qū)傩?,而是用不同的函?shù)名或?qū)傩悦@種歧義。
      可能存在的缺陷是之前的new構(gòu)造函數(shù)被分成了兩段代碼。
      var bar = Object.create(Bar); bar.inits('bar', 14);
      但是有一個好處在于我們可以關(guān)注點分離,使得創(chuàng)建和初始化分離。
      以上三種是目前主流的實現(xiàn)仿類以及繼承的范式,第二種目前相對較為流行,第三種更生僻一些,但是卻最符合JavaScript的設(shè)計思想,沒有類的概念,沒有構(gòu)造函數(shù),只有對象與對象的聯(lián)系,行為委托。并不強求一定要用哪一種,還是看個人喜好吧,因為很難講三者的優(yōu)勝好壞。
      以上就是今天分享的內(nèi)容了,感興趣的同學(xué)可以留言一起討論哈!
      文字免費,但碼字不易,記得點贊!
      感興趣可關(guān)注一波,謝謝!
      posted on 2025-05-29 14:47  言先生  閱讀(14)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 视频一区二区 国产视频| 在线免费观看毛片av| 国产精品高清中文字幕| 国产人妻精品一区二区三区不卡| 国产成人精品亚洲日本片| 四虎女优在线视频免费看| 精品国产一区二区三区久久女人 | 性色a∨精品高清在线观看| 肉色丝袜足j视频国产| 国产成人精品一区二三区| 久久亚洲国产精品久久| 阳谷县| 亚洲女同在线播放一区二区| 国内精品自线在拍| 亚洲狼人久久伊人久久伊| 成人免费A级毛片无码片2022| 国产999久久高清免费观看| 中文字幕在线视频不卡一区二区| 日韩午夜福利片段在线观看| 久久这里只精品国产2| 国产成人精品亚洲日本片| 古交市| 永久黄网站色视频免费直播| 亚洲中文久久久精品无码| 秋霞在线观看片无码免费不卡| 午夜成人理论无码电影在线播放| 亚洲精品色无码AV试看| 精品国产高清中文字幕| 亚洲码国产精品高潮在线| www插插插无码免费视频网站| 国产成人无码aa精品一区| 亚洲日韩av无码| 亚洲精品无码久久毛片| 无码人妻人妻经典| 免费AV片在线观看网址| 在线精品国精品国产不卡| 亚洲鸥美日韩精品久久| 99久久99这里只有免费费精品| 国内精品久久久久影院网站| 在线看国产精品自拍内射| 日本a在线播放|