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

时间:2012-06-19 09:50:56

标签: javascript jquery

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

function myFun(){

}

function myFunParam(myFun){

}

以上代码是否正确?如何在myFun内调用函数myFunParam

6 个答案:

答案 0 :(得分:4)

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对象(实际上是类似数组的对象)传递任意数量的参数

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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');
});

答案 3 :(得分:0)

你的代码是对的。你需要这样打电话:

function myFun(){
}

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

希望它有所帮助! :)

答案 4 :(得分:0)

或者你也可以这样做

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


function calleFunction(func) {
func();
}

calleFunction(newFunction);

答案 5 :(得分:0)

function outerFunction(innerFunction) {
    innerFunction(); // call inner function
}