1

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

function myFun(){

}

function myFunParam(myFun){

}

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

4

6 回答 6

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

于 2012-06-19T09:52:35.990 回答
1

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

function myFunParam(func) {
    func(); // call function
}
于 2012-06-19T09:52:44.370 回答
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');
});
于 2012-06-19T10:04:28.680 回答
0

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

function myFun(){
}

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

希望能帮助到你!:)

于 2012-06-19T09:52:58.437 回答
0

或者你也可以这样做

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


function calleFunction(func) {
func();
}

calleFunction(newFunction);
于 2012-06-19T10:05:49.763 回答
0
function outerFunction(innerFunction) {
    innerFunction(); // call inner function
}
于 2012-06-19T10:15:24.497 回答