react的super(props)


在學習react的時候,其中在構造函數里面,有一個super(props),具體是什么意思呢。

其中 super語法來自es6,其語法如下:

super([arguments]); 
// 調用 父對象/父類 的構造函數

super.functionOnParent([arguments]); 
// 調用 父對象/父類 上的方法

我們要理解react中的super(props),,就先看一下,es6的構造函數constructor

看如下js

		class Person{
			constructor(props){
				console.log("參數:"+props);
				console.log("初始化 Person constructor");
				this.name = "Person";
			}
		}

		class Child extends Person{
			getName(){
				console.log("名字為:"+this.name);
			}
		}
		
		var child = new Child();
		child.getName();

  在js中,類在 new 實例化的時候,系統會默認調用constructor函數,在 Child類中,我們沒有定義構造函數,那個系統會默認有一個constructor,並且會在里面調用super();  當我們定義了構造函數之后,就使用我們定義的。所以我們自己定義的構造函數必須要調用super()對父類進行初始化。

在react中,如果不需要在 constructor里面使用 props,是可以不用寫 constructor的

 

 

 

 這個兩種調用和不調用的區別,

1、如果不需要 在 constructor里面使用 this.props ,是可以不用給super傳props的

2、如果不要在constructor寫邏輯,僅僅是寫一個super(props),實際上整個constructor都沒有寫的必要

3、目前react支持一種新的寫法,沒有constructor情況下面的初始化數據,非常方便,這種寫法,阮一峰老師的es6入門文檔里面有提及,詳細的自己去看

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM