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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

填坑-十万个为什么?(24)

發(fā)布時(shí)間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 填坑-十万个为什么?(24) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)介:很多概念不清或忘記,重新構(gòu)建自己的知識(shí)體系。每天問(wèn)自己1~多個(gè)問(wèn)題。我是菜鳥(niǎo) 成為大神之路!

1.Es6 Class通過(guò)extends關(guān)鍵字實(shí)現(xiàn)繼承 Link Class & extends & super

class ColorPoint extends Point {constructor(x, y, color) {super(x, y); // 調(diào)用父類(lèi)的constructor(x, y)this.color = color;}toString() {return this.color + ' ' + super.toString(); // 調(diào)用父類(lèi)的toString()} } 復(fù)制代碼

①上面代碼中,constructor方法和toString方法之中,都出現(xiàn)了super關(guān)鍵字,它在這里表示父類(lèi)的構(gòu)造函數(shù),用來(lái)新建父類(lèi)的this對(duì)象。

②子類(lèi)必須在constructor方法中調(diào)用super方法,否則新建實(shí)例時(shí)會(huì)報(bào)錯(cuò)。這是因?yàn)樽宇?lèi)自己的this對(duì)象,必須先通過(guò)父類(lèi)的構(gòu)造函數(shù)完成塑造,得到與父類(lèi)同樣的實(shí)例屬性和方法,然后再對(duì)其進(jìn)行加工,加上子類(lèi)自己的實(shí)例屬性和方法。如果不調(diào)用super方法,子類(lèi)就得不到this對(duì)象。

③在子類(lèi)的構(gòu)造函數(shù)中,只有調(diào)用super之后,才可以使用this關(guān)鍵字,否則會(huì)報(bào)錯(cuò)。這是因?yàn)樽宇?lèi)實(shí)例的構(gòu)建,基于父類(lèi)實(shí)例,只有super方法才能調(diào)用父類(lèi)實(shí)例。

④父類(lèi)的靜態(tài)方法,也會(huì)被子類(lèi)繼承

2.基于Mixin模式實(shí)現(xiàn)多繼承 Link Mixin

Mixin 指的是多個(gè)對(duì)象合成一個(gè)新的對(duì)象,新對(duì)象具有各個(gè)組成成員的接口

將多個(gè)類(lèi)的接口“混入”(mix in)另一個(gè)類(lèi)

function mix(...mixins) {class Mix {}for (let mixin of mixins) {copyProperties(Mix.prototype, mixin); // 拷貝實(shí)例屬性copyProperties(Mix.prototype, Reflect.getPrototypeOf(mixin)); // 拷貝原型屬性}return Mix; }function copyProperties(target, source) {for (let key of Reflect.ownKeys(source)) { //Reflect.ownKeys()方法返回一個(gè)由目標(biāo)對(duì)象自身的屬性鍵組成的數(shù)組if ( key !== "constructor"&& key !== "prototype"&& key !== "name") {let desc = Object.getOwnPropertyDescriptor(source, key);//方法返回指定對(duì)象上一個(gè)自有屬性對(duì)應(yīng)的屬性描述符。(自有屬性指的是直接賦予該對(duì)象的屬性,不需要從原型鏈上進(jìn)行查找的屬性)Object.defineProperty(target, key, desc);//方法會(huì)直接在一個(gè)對(duì)象上定義一個(gè)新屬性,或者修改一個(gè)對(duì)象的現(xiàn)有屬性, 并返回這個(gè)對(duì)象。}} } 復(fù)制代碼

轉(zhuǎn)載于:https://juejin.im/post/5c3bdaad6fb9a049a57122f4

總結(jié)

以上是生活随笔為你收集整理的填坑-十万个为什么?(24)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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