将函数作为参数在单独的函数中传递

Passing a function as an argument in a separate function

本文关键字:函数 单独 参数      更新时间:2023-09-26

我有一个函数,我想作为参数传递

function myFun(){
}
function myFunParam(myFun){
}

上面的代码正确吗?如何在myFunParam中调用函数myFun

function myFun(){
   alert('test');
}
function myFunParam(myFun){
   if (typeof myFun === "function")
      myFun(); // alerts "test"
}

如果你的函数需要一个参数,你会做:

function myFun(myarg){
   alert(myarg);
}
function myFunParam(myFun){
   if (typeof myFun === "function")
      myFun('foo'); // alerts "foo"
}

或者您也可以使用arguments对象(实际上是类似数组的对象)传递任意数量的参数

function myFun(){
}
function myFunParam(myFun){
    if ($.isFunction(myFun)){         
        //Added example of passing arguments to myFun
        myFun.apply(this, ['arg1', 'arg2', 'arg3']);
    }
}

您还可以传递匿名函数,

myFunParam(function(){
    alert('anonymous function');
});

这是正确的,但我肯定会重命名参数以避免全局 myFun 和参数之间的混淆:

function myFunParam(func) {
    func(); // call function
}

你的代码是对的。您需要这样调用:

function myFun(){
}
function myFunParam(myFun){
    // Other Statements
    myFun();
}

希望对您有所帮助! :)

或者你也可以这样做

var newFunction = function() {
alert("I am in newFunction");
}

function calleFunction(func) {
func();
}
calleFunction(newFunction);
function outerFunction(innerFunction) {
    innerFunction(); // call inner function
}