そうのようなシナリオを想像:関数の呼び出し中に追加の引数を渡す
var obj = {
renderSubGame: renderComponent
}
とrenderSubGameがそうのような引数this.subGameInfoと呼ばれている。したがって、その引数は以下のようになり
renderSubGame(this.subGameInfo)
を
でもrenderComponentに渡されましたが、renderComponentにもパラメータ "component"の引数が必要です(この場合、渡される必要があります)。引数は "subGame"になる:
var obj = {
renderSubGame: renderComponent('subGame')
}
しかし、私はrenderSubGameに渡されたパラメータを失う。
したがって、renderComponentの引数として 'subGame'(obj経由)とthis.subGameInfo(関数呼び出し経由)の両方を取得できますか? subGame.render()が封入され呼び出しようsubGame.js
コードで:
ファイル/ requirejsモジュール:
より具体的には、これは私のコードで一般的なシナリオであります関数renderSubGame()は、最終的にview.renderSubGame(this.subGameInfo)を呼び出します。
ファイル/ requirejsモジュール:
function renderComponent(component) {
var renderMethods = _(render).getObjectMethodNames();
if (_(renderMethods).contains(component)) {
render[component](*INITIAL_ARGS_FROM_SUBGAME.JS*);
} else {
throw 'Error: component method render.' + component + '() not
recognized as a method of render.';
}
}
:これは私がrenderComponentは、大きくなりたいもの return: {
renderSubGame: renderComponent('subGame')
}
とある:view.jsは
これは、ビューのためのモジュールが返すものです
(レンダリングは、メソッドのオブジェクトを返す別のモジュールで、そのうちの1つはsubGameです)
私の問題は、引数(this.subGameInfo)がrenderComponentに到達しないことです。
私は.apply()または.call()で解決策を試しましたが、私が望むように動作していないようです。
renderSubGame:renderComponentを使用すると、renderSubGameの引数が含まれているので、どうすればそれらの引数に 'subGame'を追加できますか?
または代わりに、どのように私は得ることができます:
renderSubGame: renderComponent('subGame')
'サブゲーム' に加えて、
renderSubGame (this.subGameInfo)
の引数を含めるために?
var obj = {renderSubGame:renderComponent、component: 'subGame'} 'を実行してから、' subGame.render() 'で両方を使用するのはなぜですか? –
最終的に私は他のコンポーネントを使用する予定です。例えば、私はおそらく、あなたの提案にしたがって、renderComponent( 'line')をしたいと思います: 'var obj = {renderSubGame:renderComponent、renderLine:renderComponent、component: 'subGame'、component: 'line'} '明らかに有効ではない – mchach24
' var obj = {renderSubGame:renderSubGame:renderSubGameArguments:['subGame']、renderLine:renderComponent、renderLineArguments:['line']} 'またはさらに良い(私の意見では)' var obj = {renderSubGame:{target:renderComponent、args:['subGame']}、renderLine:{target:renderComponent、args:['line']}} ' –