2017-10-12 4 views
0

私はノードモジュールを初めて使用しています。私はPERSON1 =新しい人( 'ラジェッシュ'、 'Dhoundiyal')ノードモジュールmodule.exportsにFat矢印を使用

はこの作品ましょう

その後、

module.exports = function (firstName, lastName) { 
    this.firstName = firstName; 
    this.lastName = lastName; 
    this.fullName = function() { 
     return this.firstName + ' ' + this.lastName; 
    } 
} 

を試してみました。しかし、私がmodule.exportsでFatの矢印を使用しようとすると動作しません。

module.exports = (firstName, lastName) => {

このエラーは、後でperson is not a constructorと表示されます。なぜそれが起こるのか分からない。誰でも私に脂肪の矢がここではうまくいかない理由を教えてください。

+0

矢印機能は独自の「this」を作成しません。 Arrow関数の 'this'スコープは、より高いレベルのスコープを参照します。言い換えれば、 'this 'スコープはあたかもそこにArrow関数がないかのようです。 – PHPglue

+0

矢印機能と「通常の」機能の唯一の違いは、console.log(this)です。 – Nick

答えて

1

arrow-funcitonthisは他の正常機能と同じではありません。 arrow-funcitonthisarrow-funcitonが定義されてコンテキストをポイントなので、 がArrow functionsを参照してくださいコンストラクタとして使用することはできません。

矢印関数式は、より短い構文を持っていますこれらの関数式は、このメソッド、引数、スーパー、またはnewtargetをバインドしません。これらの関数式は非メソッド関数に最適で、コンストラクタとして使用することはできません。

+0

だから、私は太い矢印を使用することはできません。右? – raju

+0

いいえ、矢印機能は、これより短い機能と非バインドに使用します。 – sinbar

関連する問題