如何在函数调用中传递参数?

问题描述:

function rp_marcadesmarcaFarm(valor) { 

    FM_log(3, "marcadesmarcaFarm called = "+valor); 

    for (i = 0; i < farmList.length; i++) { 

     var arr  = farmList[i].split("|"); 
     var xy   = arr[0].split(","); 
     var fvillageId = xy2id(parseInt(xy[0]), parseInt(xy[1])); 

     GM_setValue("farmAtivada_"+suffixLocal+fvillageId, valor); 
     GM_setValue("farmAtivada_"+suffixLocal+i, valor); 
    }; 

    reloadFarmTable(); 
}; 

function createLinkButton(text, title, jsFunction, value) { 

    var button  = dom.cn("a");  
    button.href  = "javascript:void(0)";  
    button.innerHTML = text;  
    button.title  = title; 

    if (jsFunction != null) {  
    button.addEventListener('click', jsFunction, false);  
    } 

    return button;  
} 

createLinkButton("X", T('CHECKFARM_M'), rp_marcadesmarcaFarm(true)); 

显然最后一个参数(rp_marcadesmarcaFarm(true))在调用createLinkBut​​ton时不起作用。如果我改为:如何在函数调用中传递参数?

createLinkButton("X", T('CHECKFARM_M'), rp_marcadesmarcaFarm); 

它的工作原理。那么我怎样才能将(true)变量传递给createLinkBut​​ton的第三个参数呢?

createLinkButton("X", T('CHECKFARM_M'), function() {rp_marcadesmarcaFarm(true)}); 
+0

谢谢你,是没有的伎俩! – FernandoSBS 2010-05-10 18:34:30

createLinkButton等待功能,但rp_marcadesmarcaFarm(true)调用函数,实际上传递返回值。

你需要的是一个匿名函数,将调用rp_marcadesmarcaFarm(true)并传递到createLinkButton

createLinkButton("X", T('CHECKFARM_M'), function(){ rp_marcadesmarcaFarm(true); }); 
+0

因为当我点击按钮调用那个功能的东西。 – FernandoSBS 2010-05-10 18:35:02