簡體   English   中英

JavaScript將參數傳遞給作為回調的函數

[英]Javascript passing argument to function that is a 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的值從一個函數傳遞到另一個函數,並且我相信正是這種語法使我受挫。 關於我可以嘗試不同方法的任何想法或建議嗎?

您可以使用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/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

您可以使用匿名函數來做到這一點:

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

使用JavaScript ES6語法,要短一些:

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

 var buttonIDGlobal; function checkUser(buttonID) { buttonIDGlobal = buttonID; //do some stuff var data = {}; data.callback = getUserInfo; data.username = uname; data.level = lvl; checkLevel(data); } 
 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` 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM