0

ES6 アロー関数の call() メソッドの第一引数にアクセスする方法はありますか?

var obj = {
  getFn: function() { return () => {
      //how to access bar here
      return this.what;
    }
  },
  any: 1
}


var foo = obj.getFn();
var bar = {
  any: 2
};

foo.call(bar);
4

2 に答える 2

1

何をしようとしているのかわかりませんが、this経由で渡された値にアクセスする方法を尋ねている場合.call、答えは次のとおりです

アロー関数には独自のthisがない.callため、値を設定できるものはありません。関数に独自のthis値を持たせたい場合は、矢印関数を使用しないでください。

于 2015-07-13T12:31:54.380 に答える
0

Felix が気付いたように、アロー関数はこの値を所有していないため.call.applyメソッドthisはアロー関数の を変更できません。

barアロー関数の内部にアクセスしたい場合は、引数を介して渡すことができます。

var obj = {
  getFn: function() { 
    return (bar) => {
      console.log(bar);
      return this.what;
    }
  },
  any: 1
};

var foo = obj.getFn();
var bar = {
  any: 2
};

foo(bar); // prints bar into console
于 2015-07-14T08:34:31.557 に答える