gpt4 book ai didi

javascript - 为什么没有定义变量?

转载 作者:数据小太阳 更新时间:2023-10-29 05:57:48 26 4
gpt4 key购买 nike

我有以下功能:

    $.getJSON(
'getTerminalinsideCircle.json',
{
centerLatitude: adressMarker.getPosition().lat(),
centerLongitude:adressMarker.getPosition().lng(),
radius :radius/1000

}, function (data) {
$.each(data, function (key, val) {
....
}
)
}
)

我想重构它并重写它:

$.getJSON(
'getTerminalinsideCircle.json',
{
centerLatitude: adressMarker.getPosition().lat(),
centerLongitude: adressMarker.getPosition().lng(),
radius: radius / 1000

}, renderTerminalOnMap(data)
)
function renderTerminalOnMap(data) {
$.each(data, function (key, val) {
...
}
)
}

但在控制台中我看到 Uncaught ReferenceError: data is not defined

如何正确重构呢?

最佳答案

使用 renderTerminalOnMap 而不是 renderTerminalOnMap(data) 作为回调。

通过编写 renderTerminalOnMap(data),您实际上立即调用带有 data 参数的函数,这是一个 undefined 变量,并设置该函数的返回值作为回调。

当您将函数作为回调传递时,您只需传递函数名称,参数将由 getJSON 函数本身传输。

        $.getJSON(
'getTerminalinsideCircle.json',
{
centerLatitude: adressMarker.getPosition().lat(),
centerLongitude: adressMarker.getPosition().lng(),
radius: radius / 1000

}, renderTerminalOnMap
);

function renderTerminalOnMap(data) {
$.each(data, function (key, val) {
...
}
)
}

关于javascript - 为什么没有定义变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26316328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com