0

我试图理解为什么人们对我的事件处理程序使用包装函数。例如:

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)) 的参数,但我不知道继续是什么。

此外,这段代码如何知道将“真”值传递到哪里,以及它在代码中分配给了哪个变量?(即,它是哪个参数?)

4

1 回答 1

0

尝试在这里阅读:http: //www.prototypejs.org/api/function/wrap

于 2009-11-20T03:24:02.937 回答