函数参数javascript作用域
我有这段代码函数参数javascript作用域,javascript,scope,params,Javascript,Scope,Params,我有这段代码 function showOpenMaps(position,located){ jQuery.ajaxSetup({ cache:true }); jQuery.getScript("http://www.openlayers.org/api/OpenLayers.js") .done(function (script, textStatus) { $(".geocoder").show();
function showOpenMaps(position,located){
jQuery.ajaxSetup({
cache:true
});
jQuery.getScript("http://www.openlayers.org/api/OpenLayers.js")
.done(function (script, textStatus) {
$(".geocoder").show();
$("#map_canvas").html("");
var fromProjection = new OpenLayers.Projection("EPSG:4326"); // Transform from WGS 1984
var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
var position = new OpenLayers.LonLat(position.coords.longitude, p....
}
我的参数位置未定义,但在
getScript
调用之外它是正常的。有什么想法吗?是否与范围相关?向我们展示所有相关代码如何?特别是如果问题出在position
上,在那里裁剪代码是个坏主意。我建议阅读匿名函数的闭包和变量范围。var position=…position.coords.longitude
。您似乎有两个位置变量。一个来自闭包,一个来自本地作用域。它只是在那一行中没有定义。@NestorPs:事实上,它是定义的(var position
),否则它将引用函数参数。只是还没有分配给。