2016-12-02 7 views
0

私は矢印関数を使っている簡単なプロトタイプ継承コンストラクタを持っています。JavaScript:ES6でプロトタイプと矢印関数で `this`を使う

app.Node = function (name, type) { 
    this.name = name; 
    this.type = type; 
    this.children = []; 
} 

app.Node.prototype = { 
    addChild: (child)=>{ 
     child._parent = this; 
     this.children.push(child); 
    }, 
    removeChild: (child)=>{ 
     this.children.forEach((item, i) => { 
      if (item === child) { 
       this.removeChildAtIndex(i); 
      } 
     }); 
    }, 
} 

はしかし、this矢印関数の性質のために、thisの値は、上記プロトタイプメソッド内undefinedあります。だから私はこのように矢印関数を使うことができますか?私は、通常のfunction機能を使用する以外に、私は何を変更する必要があるのか​​分かりません。

+0

あなたは矢印と通常の関数の違いをきちんと釘付けにしました。矢印機能は単なるショートカットではありません。特定のケースでは、代わりにメソッドのショートカットを使用できます。https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Object_initializer#Method_definitions – estus

答えて

2

このように矢印機能を使用できますか?

番号は、宣言されたときの値をthisから取得します。

通常の関数関数を使用する以外に、変更する必要があるものはわかりません。

これを実行します。ジョブには適切なツールを使用します。

関連する問題