0

この例を考えてみましょう:-

function X(){
     var Y = function(arg1,arg2){
              document.write(arguments.length);
              document.write(arg2);
              };
     Y(arguments);
}

x(1,2,3,4,5); 
/*Outputs  1 and undefined respectively. 
  Because here i am actually passing an array like-object  to Y. */

ここで適用を使用することで、望ましい結果が得られます。

function X(){
     var Y = function(arg1,arg2){
              document.write(arguments.length);
              document.write(arg2);
              };
     Y.apply(this,arguments);
}

x(1,2,3,4,5) //outputs 5 and 2

引数の配列を取り、引数を個別のパラメーター値として渡すことによってその関数を呼び出すような適用メソッドを作成したいと考えています。

お気に入り:

var arr=[1,2,3,4];
Y.apply_like_method(arr);
//and returns like Y(1,2,3,4)
4

3 に答える 3

1

このコードを考えると:

var arr=[1,2,3,4];
Y.apply_like_method(arr);
//and returns like Y(1,2,3,4)

それを機能させるには:

Function.prototype.apply_like_method = function(args) {
    return this.apply(this, args);
}

免責事項:説明のみを目的としています。

つまり、仕方がない.apply()

于 2013-07-14T09:55:00.310 に答える
0

代わりに call メソッドを使用します。 MDN を参照してください。あなたが説明しているのは、 call メソッドと apply メソッドのハイブリッドです。パラメーターを個別に提供する機能が必要ですが、配列として関数に提供する必要があります。私の知る限り、それは現在存在せず、もともと意図されていたように適用/呼び出しを使用するか、javascript オブジェクトを使用してパラメーターを関数に渡す方が簡単です。

于 2013-07-14T09:44:28.203 に答える