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

時間 2021-06-13 09:39:12

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

為什麼要為愛情而死?

我覺得沒必要。與其為愛而死,不如將愛繼續下去。生命,是父母給的,不是他或她給的。求。愛的最高境界是為愛放棄一切。我相信真愛是一個人的靈魂,我願意為愛情放棄一切包括自己的生命,只要愛的人幸福,用雙手托起生命的奇蹟,締造經典的愛情神話,我們不能夠做一具沒有靈魂的行屍走肉 愛了就願意為她付出生命的一切,一...

人要為什麼而活著,人為什麼而活著?

活著,其實是沒有任何意義的,不管你過的如何,幾十年後,你也 將永遠地消失,你的所謂理想,信念,也將不復存在!活著為了什麼,活著就是為了活著,生命本身並無意義,它的意義由你而定! 夏雨楓楓 我活著 是為了我的家族 光宗耀祖 為了在這個世上有一席之地 有為了自己的後代 讓他們變的比我還強 因為我有個很大...

為什麼友情最重要,為什麼友誼很重要

宰父長征尹綾 我不覺得友情不重要,在我看來友情是世上親情之外最可以信任的情感。大家彼此能成為朋友,就說明彼此有所瞭解。可以相互幫助,願意與彼此分享快樂憂愁。你是不是受到關於友情的打擊了呢?還是有人這麼對你說的?真正的友情是很珍貴的。相信你的每一段值得信任的友情。人一生遇到很多人,朋友也許會因為一些原...