基於下面的JavaScript示例,是否有辦法將函數f
的引用傳遞給promptForProceed
函數,並讓它在promptForProceed
中有條件地執行?JavaScript/JQuery - 你可以傳遞一個函數引用然後執行它嗎?
如果f
函數使用了一些參數(例如:f(a, b, c) { ... }
),您也可以這樣做嗎?
function f() {
//Do stuff..
}
function promptForProceed(myFunction) { // <------ PASS FUNCTION AS PARAMETER
$("#div-dialog-proceed").dialog({
modal: true,
buttons: {
"Stay on current page": function() {
$(this).dialog("close");
},
"Continue": function() {
$(this).dialog("close");
myFunction(); // <--------- CALL FUNCTION
}
}
});
}
更新:我想我喜歡使用匿名函數參數的選項:
promptForProceed(function() { //Do stuff like call f(a,b,c) });
函數不是對象,函數通過複製傳遞,對象通過引用傳遞。 – Ally 2012-09-21 11:23:05
@Ally「JavaScript中的每個函數實際上都是一個函數__object__」 - https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function – 2012-09-21 17:20:40
很高興知道。謝謝。 – Ally 2012-09-22 00:43:20