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

2021-06-13 09:38:26 字數 1647 閱讀 4337

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的元件

人要為什麼而活

人的時間表有限.所以不要為別人而活,更重要的是.勇敢地去追隨自己的心靈和直覺,只有你的心靈和直覺才知道你自己的真實想法,其它一切都是次要 人生為了你我他 她 道路曲折和漫長 過程比戲更精彩。為了體現價值 體驗悲歡離合,生老病死 為了弄明白人為了什麼而活著?為了實現自身的理想 追求 目標 慾望。為了親...

人要為什麼而活

活著 為了體驗悲歡離合,生老病死,為了弄明白人為了什麼而活著?為了實現自身的理想 追求 目標 慾望以及價值。活得很辛苦 因為社會很不公平,活著很無奈 傷心難過要哭泣,找到事做,就不無聊 是因為人生本來就是如此 沒有一個人的人生是一帆風順的 遇到任何事情要樂觀對待 保持一顆平常心。只要謹記 這一秒不放...

人要為什麼而活

為了心中的理想,自己一直在追求的 夢想的,或許一輩子都可能達不到,但這就是人活著的目的,當這個夢想消失的時候,就是人離開人世的時候,這是感性的看待 理性的看待就是死亡,就如同餓的目的就是飽,活在特殊的位子上就想著普通的位子,活著就是為了死亡,他們都是矛盾,而矛盾的目的就是到達對方 人為了肩上的那份責...