2012-06-19 53 views
1

传递函数作为参数我有希望作为参数传递在一个单独的函数

function myFun(){ 

} 

function myFunParam(myFun){ 

} 

是上面的代码正确的功能?如何在myFunParam内调用功能myFun

回答

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

非常干净的方法+1 – skafandri

+0

新增传递参数给myFun的例子,必须经过审查 – Onkelborg

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对象(实际上是一个类似数组的对象)。

+0

如果有什么功能myFun有一个参数也? – user701254

+0

@ user701254:这已经在我的答案中提到过了,参数也意味着这里的参数:)见第二个例子。 – Sarfraz

1

这是正确的,但我肯定会重新命名的参数,以避免全球my​​Fun和参数之间的混淆:

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

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

function myFun(){ 
} 

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

希望它有帮助! :)

0

或者你可以做到这样也

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


function calleFunction(func) { 
func(); 
} 

calleFunction(newFunction); 
0
function outerFunction(innerFunction) { 
    innerFunction(); // call inner function 
} 
相关问题