我试图理解为什么人们为我的事件处理程序使用wrap函数。例如:
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函数里面有一个函数,但我对语法很困惑。 wrap函数包装函数(proceed,eachWord){blah},但是在这种情况下继续进行什么是eachWord?我认为eachWord是传递给大写的参数(“hello world”.capitalize(true))但我不知道接下来是什么。
此外,此代码如何知道传递'true'值的位置,以及代码中分配的变量? (即,它是哪个参数?)