スクリプト全体で、関数を呼び出していますdynamo.toolbox.add_temp_button
。この例は次のとおりです。
if(page < total_pages){
dynamo.toolbox.add_temp_button("Next Page",function(){
dynamo.shop.enter.access(page+1,data.shop_zbid);
});
}
この呼び出しでわかるように、2 つのパラメーターが渡されpage+1
ますdata.shop_zbid
。現在、これらの値は定数ではなく、スクリプトの全体的な機能により急速に変化します。
関数自体は次のとおりです。
add_temp_button : function(text,callback){
var id = text.toLowerCase().replace(/[^A-Za-z_]/g,"_");
callback = callback !== undefined && callback !== null ? callback : function(){};
var but = '<button value="'+text+'" id="jqi_state0_button'+id+'" name="jqi_state0_button'+id+'" class="dynamo_temp_button">'+text+'</button>';
$("#jqi_state0_buttonClose").before(but);
$("#jqi_state0_button"+id).bind('click',callback);
},
これは私のスクリプトから取り除かれていることに注意してくださいdynamo.toolbox.add_temp_button
。
ここで、これがクロージャーを形成するかどうかを知る必要があります。つまり、add_temp_button
関数に渡すパラメーターの値は固定で設定されますか?
ここでの最大の懸念は、2 番目のパラメーターですcallback
。にコールバック関数として渡される関数$.bind
です。page
バインドされたイベントがトリガーされたとき、 andの現在の値を使用しますcallback
か、それとも最初に渡された値を使用しますか?
ありがとうございました!