基于下面的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