方法如何将参数传递给处理程序?
问题描述:
说我有下面的代码:方法如何将参数传递给处理程序?
var watchId = navigator.geolocation.watchPosition(displayLocation, displayError);
有一种方法,watchPosition
,反复调用这两个处理程序之一,无论是displayLocation
或displayError
。
我的成功处理程序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);
谢谢 - 你正在传递一个函数(它被视为一个值),当你在'watchPosition'中传递并调用它时,你就调用了'handler'函数? – Cesare
函数是值,就像任何其他JavaScript数据类型一样。是的。 – Quentin
这很酷 - 感谢您的帮助昆汀! – Cesare