Javascript将参数传递给函数即回调

时间:2016-07-26 17:45:35

标签: javascript jquery arrays json callback

我有一个函数接受一个名为buttonID的参数,我需要将其传递给多个其他函数。单击链接时,将传递ID。

 <a href="#" class="theme_btn" id="check-user" onClick="javascript:checkUser(this.id);">User Check</a>

我的功能是

function checkUser(buttonID) { 
 //do some stuff
 var data = {};
 data.callback = getUserInfo;
 data.username = uname;
 data.level = lvl;
 checkLevel(data);
 }

我遇到的问题是我无法将buttonID传递给回调函数getUserInfo。

我尝试了getUserInfo(buttonID),但它无法正常运行。我应该使用getUserInfo({buttonID])的以下语法吗?

简而言之,我需要将buttonID的值从函数传递给函数,我相信它的语法阻碍了我。关于我可以尝试不同的任何想法或建议吗?

3 个答案:

答案 0 :(得分:1)

您可以使用bind

function checkUser(buttonID) { 
 //do some stuff
 var data = {};
 data.callback = getUserInfo.bind(null, buttonID);
 data.username = uname;
 data.level = lvl;
 checkLevel(data);
}

更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

答案 1 :(得分:0)

您可以使用匿名函数执行此操作:

data.callback = function(){getUserInfo(buttonID)}

使用JavaScript ES6语法,缩短一点:

data.callback = _=>{getUserInfo(buttonID)}

答案 2 :(得分:0)

&#13;
&#13;
var buttonIDGlobal;

function checkUser(buttonID) { 

 buttonIDGlobal = buttonID;
 //do some stuff
 var data = {};
 data.callback = getUserInfo;
 data.username = uname;
 data.level = lvl;
 checkLevel(data);
 }
&#13;
You can simple define a global variable and assign the button ID to that variable. 


Now "buttonIDGlobal" is accessible in "getUserInfo()" function.`enter code here`
&#13;
&#13;
&#13;