2012-06-19 56 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 
} 
相關問題