2016-11-15 12 views
0

次のコードはes5に相当するものは何ですか?次のコードはes5に相当するものは何ですか?

constructor(props) { 
    super(props); 

    this.state = { ...this.props }; 
} 
+2

'this.state = Object.assign({}、this.props)' – chenkehxx

+0

IはObject.assignまだES6としてカウント考えます。 http://www.ecma-international.org/ecma-262/6.0/#sec-object.assign。 es5では、すべてをコピーしたり、ヘルパーをアンダースコアやロダッシュで使用したりするだけです。 –

+0

いつもBabelにES5コードをコンパイルして、それが何をするかを確認できます。 – jfriend00

答えて

1

> = ES6構文を使用しないと、そのコードはこのようになります。

function MyComponent(props) { 
    // super(props) 
    React.Component.call(this, props); 

    // this.state = { ...this.props }; 
    this.state = Object.assign({}, props); 
} 

バベルのあなたがコンパイルされたコードは次のようになります正確に何を見るために使用することができるサイトhas a repl

この場合、it's quite complexです。これは、BabelがES5のためにES6クラスをポリフィルするために使用するクラスユーティリティにほとんどラップされているためです。


this.state = { editFlag : false, ...this.props }の2番目の例は似ています。

this.state = Object.assign({}, editFlag: false, this.props); 
関連する問題