方法如何将参数传递给处理程序?

问题描述:

说我有下面的代码:方法如何将参数传递给处理程序?

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

有一种方法,watchPosition,反复调用这两个处理程序之一,无论是displayLocationdisplayError

我的成功处理程序displayLocation接受参数,该参数由方法watchPosition提供。

我无法理解该方法是如何将参数传递给处理程序的。我知道函数被视为值。我如何在我的代码中复制这个?

与将其传递给任何其他函数的方式相同。

您指定引用函数要调用的变量,然后您将()与他们之间的参数。

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