は私が...しかし、私は常に...javascriptの変数に関数を割り当てる?
window.localStorage.setItem('something', value);
やっていたことがわかった。.. ...
var setFoo = function (value1) {
window.localStorage.setItem('foo1', value1);
}
var setFoo2 = function (value2) {
window.localStorage.setItem('foo2', value2);
}
を、次のようなものを持っていたので、私はそれを回すことにしました関数に...
function genericSetFoo(name, value) {
window.localStorage.setItem(name, value);
}
...、代わりに以下のいる...
var setFoo = genericSetFoo('foo1', value1);
var setFoo2 = genericSetFoo('foo2', value2);
は...しかし、今私はsetFoo1(value1)
またはsetFoo2(value2)
、アプリケーションがvalue1
とvalue2
はundefined
であることを訴える呼び出すしようとします。私は間違って何をしていますか?私は...私はまだやることができ
var setFoo = function(value1) { genericSetFoo('foo1', value1) };
var setFoo2 = function(value2) { genericSetFoo('foo2', value2) };
を意味する...、それはあまりにも動作します...しかし、私はどのような場合で関数を再定義する必要がある場合、それは全体のポイントを敗北します。だから私はこれにどのように取り組んでいますか?
ありがとうございます。それは本当に面白いです。これは私の現在の理解にとって最も理解しやすい解決策のようです。しかし、他のユーザーの中には、「カリング」や「部分的なアプリケーション」について何か言及してきましたが、これに比べて何についてお話しますか?感謝。 – Grateful
さて、私はあなたの方法が、実際にはカレー加工の例であることに気がつきました。しかし、これは '.bind'テクニックからどのように延期されますか? – Grateful
@Grateful:これは、ES5の '.bind()'のような)追加の言語機能を必要とせず、元のNetscapeリリースのjavascriptとIEのオリジナルリリースのjscriptに戻って動作します。また、関数とクロージャの仕組みを理解すれば、 '.bind()'のような追加の言語機能を実装することができます。 – slebetman