0

イベント ハンドラーにラップ関数を使用する理由を理解しようとしています。例えば:

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)) に渡されるパラメーターだと思いますが、何が進むのかわかりません。

また、このコードは「真」の値を渡す場所と、コード内のどの変数に割り当てられているかをどのように認識したのでしょうか? (つまり、どのパラメータですか?)

4

1 に答える 1

0

ここを読んでみてください:http://www.prototypejs.org/api/function/wrap

于 2009-11-20T03:24:02.937 に答える