摘要:語法調(diào)用父對象父類的構(gòu)造函數(shù)調(diào)用父對象父類上的方法在構(gòu)造函數(shù)中使用時,關(guān)鍵字將多帶帶出現(xiàn),并且必須在使用關(guān)鍵字之前使用。,需要先被調(diào)用這里,它調(diào)用父類的構(gòu)造函數(shù)的作為的和注意在派生的類中在你可以使用之前必須先調(diào)用。忽略這這將導(dǎo)致引用錯誤。
super關(guān)鍵字用于訪問和調(diào)用一個對象的父對象上的函數(shù)。super.prop和super[expr]表達(dá)式在類和對象字面量任何方法定義中都是有效的。語法
super([arguments]); // 調(diào)用 父對象/父類 的構(gòu)造函數(shù) super.functionOnParent([arguments]); // 調(diào)用 父對象/父類 上的方法
在構(gòu)造函數(shù)中使用時,super關(guān)鍵字將多帶帶出現(xiàn),并且必須在使用this關(guān)鍵字之前使用。
class Polygon { constructor(height, width) { this.name = "Polygon"; this.height = height; this.width = width; } sayName() { console.log("Hi, I am a ", this.name + "."); } } class Square extends Polygon { constructor(length) { this.height; // ReferenceError,super 需要先被調(diào)用! /* 這里,它調(diào)用父類的構(gòu)造函數(shù)的 length, 作為Polygon 的 width和 height. */ super(length, length); /* 注意: 在派生的類中, 在你可以使用"this"之前, 必須先調(diào)用super()。 忽略這, 這將導(dǎo)致引用錯誤。 */ this.name = "Square"; } get area() { return this.height * this.width; } set area(value) { this.area = value; } }
https://developer.mozilla.org...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/97649.html
摘要:構(gòu)造函數(shù)自身屬性是直接賦值給它的所有,也就是說本身的屬性,不管是直接類型還是引用類型都是分別復(fù)制一份給和,因此修改了的屬性并不會影響到。 最基本的構(gòu)造函數(shù)與實(shí)例的關(guān)系: var Sub = function (color,list) { this.color = color; this.list = list } var sub1 = new Sub(red,[1])...
摘要:同時彈出的結(jié)果是指向了子類,又說明雖然調(diào)用的是父類的構(gòu)造函數(shù),但是調(diào)用完后會指向子類,指向也被改成了子類的實(shí)例。 在上一篇文章里介紹了繼承,那其中說過一個很關(guān)鍵的東西想要繼承子類里里必需先調(diào)用一個super方法。而super的作用絕對是價值連城!同時super的作用還有多種,并且跟你的使用環(huán)境有關(guān)系。 1、當(dāng)作函數(shù)使用 super被當(dāng)作函數(shù)使用,這種情況是最普遍的,上一篇文章里已經(jīng)使用...
摘要:舉個栗子中一段簡單的繼承代碼實(shí)現(xiàn)使用了,不會報錯這段代碼非常簡單,在子類中使用了關(guān)鍵字,編譯時不會報錯,也可以正常執(zhí)行。參考資料從中的講原型鏈與繼承的靜態(tài)屬性和實(shí)例屬性 問題引入 最近一直在看原型繼承相關(guān)的東西,翻到這么一篇文章: 從ES6中的extends講js原型鏈與繼承 文中有一個點(diǎn)讓我很感興趣,箭頭函數(shù)在繼承過程中無法通過super關(guān)鍵字獲取,這是為什么呢? 前置知識 MDN上...
摘要:說到,大家可能覺得很簡單呀,不就是用來調(diào)用父類方法的嘛。單繼承在單繼承中就像大家所想的那樣,主要是用來調(diào)用父類的方法的。你覺得執(zhí)行下面代碼后,的值是多少呢執(zhí)行結(jié)果如下這個結(jié)果說明了兩個問題確實(shí)調(diào)用了父類的方法。 說到 super, 大家可能覺得很簡單呀,不就是用來調(diào)用父類方法的嘛。如果真的這么簡單的話也就不會有這篇文章了,且聽我細(xì)細(xì)道來。? 約定 在開始之前我們來約定一下本文所使用的 ...
摘要:整個過程還是比較清晰的,關(guān)鍵是要理解的工作方式,而不是想當(dāng)然地認(rèn)為調(diào)用了父類的方法。小結(jié)事實(shí)上,和父類沒有實(shí)質(zhì)性的關(guān)聯(lián)。 super() 的入門使用 在類的繼承中,如果重定義某個方法,該方法會覆蓋父類的同名方法,但有時,我們希望能同時實(shí)現(xiàn)父類的功能,這時,我們就需要調(diào)用父類的方法了,可通過使用 super 來實(shí)現(xiàn),比如: class Animal(object): def __...
閱讀 3333·2021-09-08 09:45
閱讀 1264·2019-08-30 15:53
閱讀 1542·2019-08-30 14:12
閱讀 990·2019-08-29 17:01
閱讀 2583·2019-08-29 15:35
閱讀 407·2019-08-29 13:09
閱讀 1984·2019-08-29 12:32
閱讀 3096·2019-08-26 18:37