[解決済み] パラメータ付きの関数に参照を渡すにはどうしたらいいですか?重複
質問
重複の可能性があります。
JavaScriptの関数呼び出しで引数を事前に設定するにはどうすればよいですか?(部分的な関数の適用)
私は、以下のことができるようにする必要があります。 与えられたパラメータを持つ関数への参照を渡す。 .
以下は、参照を渡す例です。 を使わずに パラメータ :
var f = function () {
//Some logic here...
};
var fr = f; //Here I am passing a reference to function 'f', without parameters
fr(); //the 'f' function is invoked, without parameters
次に必要なのは、同じように
f
関数を渡すことです。しかし、今回は参照にパラメータを渡す必要があります。 さて、無名関数でこれを行うことができます。
f
関数にパラメータを渡して呼び出すことができます。
var f = function () {
//Some logic here...
};
var fr = function (pars) {
f(pars);
}; //Here I am creating an anonymous function, and invoking f inside it
fr({p : 'a parameter'}); //Invoking the fr function, that will later invoke the f function with parameters
しかし、私の疑問は
への直接の参照を渡す方法はあるのでしょうか?
f
関数への直接の参照を
fr
に、しかし無名関数で囲むことなく?
に割り当てる必要があるのは何ですか?
fr
に割り当てれば、パラメータなしで呼び出せるようになります (
fr()
) で、f(1,2,3) が実行されるようにします。
fr
が呼び出されたときに実行されるのですか?
[UPDATE]を実行します。 私は ジェイソン・バンティング への回答 はこちら について 部分的な機能 で、彼がそこに投稿しているJavaScriptの関数は、まさに私が探していたものです。 以下はその解決策です。
function partial(func /*, 0..n args */) {
var args = Array.prototype.slice.call(arguments).splice(1);
return function() {
var allArguments = args.concat(Array.prototype.slice.call(arguments));
return func.apply(this, allArguments);
};
}
どのように解決するのですか?
あなたが求めているものは 部分関数アプリケーション .
カレーとの微妙な違いを理解していない人に騙されてはいけません、彼らは は の違いです。
部分的な関数適用で実装可能ですが は をキュレーションします。以下は、引用です。 に関するブログ記事から引用します。 :
部分適用が関数を受け取り、そこからより少ない引数を受け取る関数を構築するのに対し、curryingはそれぞれが単一の引数を受け取る関数の合成により、複数の引数を受け取る関数を構築します。
これはすでに回答されています、あなたの答えのためにこの質問を参照してください。 どのように私はJavaScriptの関数呼び出しで引数を事前に設定することができますか?
例を挙げます。
var fr = partial(f, 1, 2, 3);
// now, when you invoke fr() it will invoke f(1,2,3)
fr();
繰り返しになりますが、詳しくはその質問をご覧ください。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] 変数を参照渡しする方法を教えてください。
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)