[英]Javascript Function Variables
结果变量和状态指的是什么? 他们来自哪里? 如何将出发地,目的地和旅行模式传递给该功能? 函数的结果在哪里?
$('#directions-form').submit(function(e) {
$('#error').hide();
ds.route({
origin: $('#from').val(),
destination: $('#to').val(),
travelMode: $('#mode').val()
}, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
fitBounds = true;
dr.setDirections(result);
}
else {
$('#error').text(status).show();
}
recalcHeight();
});
e.preventDefault();
return false;
});
它们是成功回调函数的参数 。
当响应成功时,使用适当的变量调用route方法时,将异步触发回调。 参数是方法调用的一部分,是回调的一部分。
因此,您可以继续将其替换为所需的任何变量名,这些变量名将在函数闭包内使用。
}, function(a, b) { // Will work to
使用两个参数调用此函数:
ds.route()
第一个参数是其中包含一些值的对象:
{
origin: $('#from').val(),
destination: $('#to').val(),
travelMode: $('#mode').val()
}
第二个参数是一个函数:
function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
fitBounds = true;
dr.setDirections(result);
}
else {
$('#error').text(status).show();
}
recalcHeight();
}
请注意,在JavaScript中,函数是一个与其他对象一样的对象,并且可以像变量一样传递。 由于将其作为变量传递到ds.route()
中,因此该函数本身尚未执行。
在内部, ds.route()
使用的第一个参数具有值(原点,目的地,travelMode)来执行某些操作。 没关系,它只是该函数的作用。
然后,完成后,将执行第二个参数,即函数。 当执行该函数时,它将把两个值作为参数传递给它。 这些值最终将成为函数中使用的result
和status
变量。
为了说明这一点,您可以执行以下操作:
function doSomething(value, callback) {
if (value == 1) {
alert("The value is 1");
callback(2)
}
}
doSomething(1, function (value) {
if (value == 2) {
alert("The value is 2");
}
});
这定义了一个接受两个参数的函数,并期望它们是一个数字和一个函数。 如果数字等于1,它将执行该功能。 然后使用值1和一个函数调用该函数,该函数将作为回调执行。
当使用路由对象作为唯一参数调用ds.route
,它将生成一个result
和一个status
。 这些作为参数传递给其回调。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.