
[code]

    const Message = props => <div>{props.msg}</div>
    
[/code]

と、

[code]

    function Message(props) {
        return (
            <div>{props.msg}</div>
            )
    }
    
[/code]

は同じですか？

どこかで確かめることはできますか？


CC BY-SA 3.0
2018-02-21T13:17:26.170
41897
2018-02-22T02:08:37.657
2018-02-21T16:51:49.993
19110
12896
question
javascript es6
es6のアロー関数は通常の関数と同じ？


違います。

通常の関数定義によって定義された関数は `new` で呼び出せますが、アロー関数はできません。

[code]

    var Foo = function(){};
    var foo = new Foo();  // OK
[/code]

[code]

    var Foo = () => {};
    var foo = new Foo();  // エラー
[/code]

また、今回の例では出てきませんが、通常の関数とアロー関数では `this` の扱いにも差があります。  
より詳しくは、本家 Q&A の ["Arrow function vs function declaration / expressions: Are
they equivalent /
exchangeable?"](https://stackoverflow.com/q/34361379/5989200) や MDN
の[「アロー関数」](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/arrow_functions)をご覧ください。

(このような問題は、英語で "〇〇 vs ××" と検索すると上手く出てくるような気がします。また、最終的には仕様を読むのが良いと思います。)


CC BY-SA 3.0
2018-02-21T17:01:09.473
41902
2018-02-22T02:08:37.657
2018-02-22T02:08:37.657
19110
19110
41897
answer