我试图理解为什么人们对我的事件处理程序使用包装函数。例如:
Example.prototype.wrap = function(obj, method) {
return function(event) {
obj[method](event);
}
}
基本上,wrap 是用来做什么的?
编辑:从下面链接的示例中,代码是:
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 函数内部有一个函数,但我对语法感到困惑。wrap 函数 wrap function(proceed, eachWord) { blah },但在这种情况下,proceed 是什么,eachWord 是什么?我认为 eachWord 是传递给 capitalize ("hello world".capitalize(true)) 的参数,但我不知道继续是什么。
此外,这段代码如何知道将“真”值传递到哪里,以及它在代码中分配给了哪个变量?(即,它是哪个参数?)