2016-09-27 15 views
1

私は次のように矢印の機能を持っている:new on arrow関数を呼び出すことはできますか?

var Test =() => {} 

私が呼ぶとき:

new Test() 

私は戻って取得:

VM110:1 Uncaught TypeError: Test is not a constructor(…)(anonymous function) @ VM110:1 

我々は矢印関数にnewを呼び出すことはできませんか?

答えて

1

矢印関数をコンストラクタとして使用することはできません。通常の関数は、内部メソッド[[Construct]]とプロパティプロトタイプを使用してnewをサポートします。矢印機能はどちらもないため、理由は

new (() => {}) 

となります。

+0

さらに読むには、MDNページもお勧めします:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions –

+0

しかし、矢印機能は変換されます正常な機能の権利に? [this](http://es6console.com/itl158ci/)はうまく動くようです。 –

+1

そのサイトはes6コードをplain es5に変換しているようです。 es5には矢印関数のようなものはないので、この制限を共有しない無名関数に変換されただけです。 –

関連する問題