為什麼react的元件要,為什麼react的元件要super

2021-06-13 09:38:27 字數 1647 閱讀 1269

1樓:廣州啟匯營銷策劃****

原因呼叫super的原因:在es6中,在子類的constructor中必須先呼叫super才能引用this。

super(props)的目的:在constructor中可以使用this.props。

最後,可以看下react文件,裡面有一段:

在es6中實現繼承,直接呼叫super(name),就可以直接繼承父類的屬性和方法,所以super作用就相當於上述的實現繼承的步驟,不過es6提供了super語法糖,簡單化了繼承的實現。

2樓:匿名使用者

解釋一:

呼叫super的原因:在es6中,在子類的constructor中必須先呼叫super才能引用this

super(props)的目的:在constructor中可以使用this.props

最後,可以看下react文件,裡面有一段

class components should always call the base constructor with props.

解釋二:

假設在es5要實現繼承,首先定義一個父類:

//父類

function sup(name)

//定義父類原型上的方法

sup.prototype.printname = function ()

現在再定義他sup的子類,繼承sup的屬性和方法:

function sub(name,age)

sub.prototype = new sup //把子類sub的原型物件指向父類的例項化物件,這樣即可以繼承父類sup原型物件上的屬性和方法

sub.prototype.constructor = sub //這時會有個問題子類的constructor屬性會指向sup,手動把constructor屬性指向子類sub

//這時就可以在父類的基礎上新增屬性和方法了

sub.prototype.printage = function ()

這時呼叫父類生成一個例項化物件:

let jack = new sub('jack',20)

jack.printname() //輸出 : jack

jack.printage() //輸出 : 20

這就是es5中實現繼承的方法。而在es6中實現繼承:

class sup

printname()

}class sub extends sup

printage()

}let jack = new sub('jack',20)

jack.printname() //輸出 : jack

jack.printage() //輸出 : 20

對比es5和es6可以發現在es5實現繼承,在es5中實現繼承:

首先得先呼叫函式的call方法把父類的屬性給繼承過來

通過new關鍵字繼承父類原型的物件上的方法和屬性

最後再通過手動指定constructor屬性指向子類物件

而在es6中實現繼承,直接呼叫super(name),就可以直接繼承父類的屬性和方法,所以super作用就相當於上述的實現繼承的步驟,不過es6提供了super語法糖,簡單化了繼承的實現

react怎麼用jquery的元件

女生的初吻為什麼比初夜還重要,為什麼女生的初吻比初夜還重要

沒想過這個問題,媽媽說接吻了就會懷孕了,我當時沒弄明白,現在看看還是有道理的 為什麼女生的初吻比初夜還重要 其實都重要!女生的初吻,是基於無數浪漫的情景幻想的時刻,緊張而又期待 初夜則是情感升溫的體現,除了疼痛,並未帶來太多的浪漫和快樂,不願意去回憶 因為初吻後,就差不多有初夜了 這有點像做前置任務...

不熬夜為什麼重要,為什麼不要經常熬夜呢?

熬夜是一個漢語詞彙,拼音是 o y 釋義 指到深夜 晚上10點半以後 還不睡。泛指因事通宵或至深夜忍困不眠。熬夜太傷肝,破壞內分泌系統的平衡,讓你長期處於亞健康狀態,直到內分泌系統紊亂,各種疾病就接踵而至了 正常人類的排毒系統都會在12點到2點之間進入正常工作狀態。人類睡眠也需要一定的時間來讓大腦皮...

瑜伽練習,呼吸為什麼那麼重要,為什麼練習瑜伽要腹式呼吸呢?

瑜伽主要有三種呼吸方法 腹式呼吸法 胸式法和完全式呼吸法。一般練習瑜伽的過程中都側重腹式呼吸法 吸氣,小腹故障,感覺吸入的氧氣到達丹田,然後呼氣,全部撥出,腹部貼向脊樑骨。吸氣和呼氣都要儘可能的緩慢,5秒鐘左右,呼氣比吸氣要更為深長。要使呼吸連貫,不要憋氣。因為腹式呼吸與咱們的正常呼吸正好相反。如果...