1

私の一連の方法はそのようなものです:

onUpdateAcrossDown ( findAcrossAndDownWords( across_index, down_index ) )

再利用したいfindAcrossAndDownWordsので、必要に応じて他のメソッドに渡すことができる2つのオブジェクトを返したいのです。

findAcrossAndDownWords: function(across_index, down_index) {
  across_word = across_index[0] // <-- not real, just representing that it becomes an object here.
  down_word = down_index[0]
  return [across_word, down_word] // <-- This is where my problem is. Not sure how to return a double param for my parent function.
}

問題は、return私が使用しているものが適切に合格しないことacross_word, down_wordです。

onUpdateAcrossDown: function(across_word, down_word) {
 // How do I get across_word and down_word here properly?
4

2 に答える 2

4

配列内の値を関数のパラメーターとして使用する場合は、次のコマンドで関数を呼び出す必要があります。.apply()

var results = findAcrossAndDownWords( across_index, down_index );
onUpdateAcrossDown.apply(whatever, results);

このメソッドは、呼び出された関数で使用する値と、渡すパラメーターを含む配列の.apply()2つの引数を取ります。this

于 2012-11-05T20:22:43.857 に答える
1

呼び出しをネストする代わりに、2番目の関数を引数として渡すことができます。

findAcrossAndDownWords(across_index, down_index, onUpdateAcrossDown);

function findAcrossAndDownWords(object1, object2, callNext)
{
    //do stuff
    return callNext(object1, object2);
}

または、2番目の関数の関数定義を次のように変更します。

function UpdateAcrossDown(anArray)
{
    var obj1 = anArray[0], obj2 = anArray[1];
}

または、常に同じ関数を呼び出す場合は、次のようにします。

function findAcrossAndDownWords(object1, object2, callNext)
{
    //do stuff
    return UpdateAcrossDown(object1, object2);//loses call context
    return UpdateAcrossDown.apply(this,arguments);//preserve called context
    //or even
    return UpdateAcrossDown.apply(this,[object1,object2]);//preserve called context
}
于 2012-11-05T20:25:02.850 に答える