2015-12-21 112 views
0

說我有下面的代碼:方法如何將參數傳遞給處理程序?

var watchId = navigator.geolocation.watchPosition(displayLocation, displayError); 

有一種方法,watchPosition,反覆調用這兩個處理程序之一,無論是displayLocationdisplayError

我的成功處理程序displayLocation接受參數,該參數由方法watchPosition提供。

我無法理解該方法是如何將參數傳遞給處理程序的。我知道函數被視爲值。我如何在我的代碼中複製這個?

回答

2

與將其傳遞給任何其他函數的方式相同。

您指定引用函數要調用的變量,然後您將()與他們之間的參數。

function watchPosition(aFunction, anotherFunction) { 
    if (all_is_good) { 
     aFunction(1); 
    } else { 
     anotherFunction(2); 
    } 
} 

var all_is_good = true; 

function handler(arg) { console.log(arg); } 

watchPosition(handler, handler); 
+0

謝謝 - 你正在傳遞一個函數(它被視爲一個值),當你在'watchPosition'中傳遞並調用它時,你就調用了'handler'函數? – Cesare

+0

函數是值,就像任何其他JavaScript數據類型一樣。是的。 – Quentin

+0

這很酷 - 感謝您的幫助昆汀! – Cesare

相關問題