イベント ハンドラーにラップ関数を使用する理由を理解しようとしています。例えば:
Example.prototype.wrap = function(obj, method) {
return function(event) {
obj[method](event);
}
}
そもそもラップって何に使うの?
編集:以下にリンクされている例から、コードは次のとおりです。
String.prototype.capitalize = String.prototype.capitalize.wrap(
function(proceed, eachWord) {
if (eachWord && this.include(" ")) {
// capitalize each word in the string
return this.split(" ").invoke("capitalize").join(" ");
} else {
// proceed using the original function
return proceed();
}
});
"hello world".capitalize() // "Hello world"
"hello world".capitalize(true) // "Hello World"
ラップ関数の内部に関数があることはわかりますが、構文に混乱しています。wrap 関数は function(proceed, eachWord) { blah } をラップしますが、この場合、proceed とは何ですか? eachWord とは何ですか? eachWord は capitalize ("hello world".capitalize(true)) に渡されるパラメーターだと思いますが、何が進むのかわかりません。
また、このコードは「真」の値を渡す場所と、コード内のどの変数に割り当てられているかをどのように認識したのでしょうか? (つまり、どのパラメータですか?)