は、Javascriptでそのようなデフォルトパラメータを渡すことはできません - あなたが別の関数を自分で作成する必要があります。
あなたはです。しかし、これらのクロージャを自動的に作成するには、非常にきちんとしたヘルパー関数を使用してください。私が一番好きなパターンの1つはpartial function applicationです。ここで、「デフォルト」のパラメータは一番左のパラメータです。
あなたはFunction.prototype.bind(それはまたthis
パラメータを処理します - これは、同様のコールバックなどのメソッドを渡して許可することができます)を使用することができ、新たなブラウザを使用している場合は、同様に古いブラウザをサポートする必要がある場合
otherother(callback.bind(undefined, 1));
//sets the first parameter to 1
//when the callback is called, the 2nd, 3rd, parameters are filled and so on
を、 create your own部分的なアプリケーション機能(多くのJSフレームワークは何らかのソートを持っていますが、次の例はPrototypeから取られました)
Function.prototype.curry = function() {
var fn = this, args = Array.prototype.slice.call(arguments);
return function() {
return fn.apply(this, args.concat(
Array.prototype.slice.call(arguments)));
};
};