私は次のような Google Closure のイベント処理を使用しています。
goog.events.listen(this.contentElement, goog.events.EventType.CLICK, this.openEditor);
しかし、文字列を引数として関数に渡す必要があります。this.openeditor
私はドキュメントに目を通しましたが、これを行う方法がうまくいかないようです。誰かアイデアがありますか?
ありがとう!
私は次のような Google Closure のイベント処理を使用しています。
goog.events.listen(this.contentElement, goog.events.EventType.CLICK, this.openEditor);
しかし、文字列を引数として関数に渡す必要があります。this.openeditor
私はドキュメントに目を通しましたが、これを行う方法がうまくいかないようです。誰かアイデアがありますか?
ありがとう!
次のようにgoog.partialを使用してみてください。
goog.events.listen(this.contentElement, goog.events.EventType.CLICK, goog.partial(this.openEditor,'the string you want to pass it'));
this.contentElement
をクリックするthis.openEditor
と呼び出されます。最初のパラメーターは文字列になり、2 番目のパラメーターはイベント オブジェクトになります。
上記の Joshua からの回答は正しいです。さらに情報を追加したいだけです。
base.js で定義された goog.bind と goog.partial の比較
goog.partial では、コンテキストが現在のコンテキストに設定されています。現在のコンテキストで実行される関数を返します。
goog.partial = function(fn, var_args) {
var args = Array.prototype.slice.call(arguments, 1);
return function() {
// Clone the array (with slice()) and append additional arguments
// to the existing arguments.
var newArgs = args.slice();
newArgs.push.apply(newArgs, arguments);
return fn.apply(this, newArgs);
};
};
goog.bind (バインドのネイティブ実装を実際にチェックする) のように、コンテキストを 2 番目のパラメーターとして渡すことができます。
goog.bind = function(fn, selfObj, var_args) {
//defined in base.js
....
....
return function() {
return fn.apply(selfObj, arguments);
};
}