(javascript)用于关于事件处理程序的包装函数是什么?

时间:2009-11-20 03:05:05

标签: javascript event-handling wrap-function

我试图理解为什么人们为我的事件处理程序使用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'值的位置,以及代码中分配的变量? (即,它是哪个参数?)

1 个答案:

答案 0 :(得分:0)