2013-05-21 60 views
0

我對JavaScript非常陌生,所以請耐心等待。安全性:在JavaScript中傳遞函數作爲參數

我在想,如果你將一個函數作爲參數傳遞給JavaScript中的另一個功能,例如(聲明:該代碼可能不是100%正確,但你應該明白了吧!):

function(param1, param2) { 

    .... 
    // Do something with param 1 
    param1 += 10; 
    .... 

    // Param 2 is a function, so call it 
    param2(); 

    ..... 
} 

這是一個潛在的安全風險,或者這是一種常用的JavaScript編程方式嗎?

謝謝。

回答

2

在JavaScript中,功能是頭等公民。您可以將函數分配給var,將函數作爲arguments傳遞給其他函數或return作爲另一函數的結果函數。

JavaScript中有許多方法接受函數作爲參數(也稱爲回調函數)。 就是這樣一個例子的forEach

Array.prototype.forEach(); 

var elements = [42, 33, 45, 5]; 

elements.forEach(/*anonymous function*/function(element, index) { 
// do something with element 
}); 

elements.forEach(callback); 

function callback(element, index) { 
//do something with element 
} 
+0

所以這樣做沒有安全問題? – Mewzer

+1

@Mewzer只記得當你傳遞一個函數作爲參數時忽略括號'()',因爲你只是將函數引用傳遞給新函數而不是調用它 –

相關問題