7

次のように定義された functionA があるとしましょう。

functionA = function(myObject, someParams) {
  myObject.save_some_data = someParams;
  myObject.processed = true;
}

次に、それを呼び出して、作業するオブジェクトを として渡すことができますfunctionA(someObject, someParams)

apply()ただし、この例を次のように変換できます。

functionA = function(someParams) {
  this.save_some_data = someParams;
  this.processed = true;
}

functionA.apply(someObject, [someParams]);

どちらのアプローチも同じ目標を達成しているようですが、何か不足していますか?

しかし、apply()JavaScript には存在するので、関数thisが最初の引数として受け入れる代わりにそれを使用する利点は何ですか?

4

2 に答える 2

3

applysomeParams引数の配列として使用します。call実際には同じことをします:

functionA.call(someObject, someParams);

スタイル以外のメリットはありません。ほとんどの場合、引数として渡すsomeObject方が理にかなっているでしょうが、それはあなた次第であり、どれが一番好きかはあなた次第です。

于 2013-06-30T15:17:04.830 に答える