bind()
を使用して、関数とパラメータをバインドできます。javascriptバインド機能を使用する場合のParamプレースホルダ
たとえば、outputTwo()
には2つのパラメータが必要です。私はそれをパラメータでバインドします。それから、呼び出す際にパラメータを渡すだけです。次のようになります。
<script>
function outputTwo(param1, param2) {
console.log(param1, param2);
}
var boundOutput = outputTwo.bind(null, "what"); // the first param should be an object, to replace <this> object in function, which not needed in our question
boundOutput("the heck?");
</script>
出力はWhat the heck?
です。
質問です:は、私が最初のものを結合ずにoutputTwo()
、に2つ目のパラメータをバインドすることはできますか?
C++には、placeholders
と呼ばれるものがあります。
auto boundOutput = std::bind(outputTwo, std::placeholders_1, "the heck?");
boundOutput("what");
それは出力What the heck?
ます:私はPARAM1を結合することなくPARAM2をバインドする必要があるとき、私はPARAM1にplaceholder
を渡す必要がある、のように見えます。 JavaScriptのようなものがありますか?
EDIT: 私は、ブラウザの拡張機能を書いている、と私はバインドする必要がある機能は、ブラウザで私が書いたが、呼ばれています。だから私はパラメータのタイプを変更することができません。
Downvoters:理由を説明してください?これは妥当な質問のようです。 – mplungjan
実際、あなたの質問に間違いはありません。よく説明された。とにかく答えにバインドはちょうど左から右に行くでしょう。しかし、JSの優れた特徴の1つはオブジェクトリテラルです。これらを使用すると、より複雑なデフォルトパラメータを作成できます。 '{first:" one "}'と呼ばれ、呼び出し側から自己文書化コードを生成するという利点があります。 – Keith