この関数をこのコードで参照渡しするにはどうすればよいですか?
var Class = function() {
var callback1;
var callback2;
function buildStuff(data, callback) {
element.onclick = function() {
doStuff(callback);
};
}
function doStuff(callback) {
callback();
}
return {
"setCallback1":function(fn) {
callback1 = fn;
},
"setCallback2":function(fn) {
callback2 = fn;
},
//may rebuild with different data, but same callback
"buildFoo":function(data) {
buildStuff(data, callback1);
},
//may rebuild with different data, but same callback
"buildBar":function(data) {
buildStuff(data, callback2);
}
};
}
function main() {
var object = Class();
object.setCallback1(function() {
//do stuff
});
object.setCallback2(function() {
//do something else
});
}
実際に要素をクリックするとcallback
、undefined
. setCallback
関数を呼び出した後にユーザーのクリックが発生するため、関数で設定した匿名関数であると予想されsetCallback
ます。
ありがとう!
編集: 入力していただきありがとうございます。callback
等しいものを動的に設定できるようにする必要があることを述べたはずです。callback
そのため、からパラメーターを削除することはできませんbuildStuff
。
EDIT2:混乱して申し訳ありません。私の例は、私が何をしているのかを示すには、文脈から少し外れすぎていることに気付きました。buildStuff
実際には、繰り返し呼び出されるプライベート メンバー関数 (モジュール パターンを使用) です。ビルドする内容に応じて、異なるコールバックが必要です。コールバックは実際にはクラス (モジュール パターン クラス) の外で設定されるため、動的でなければなりません。コードを更新しましたが、悪い例で申し訳ありません。