gpt4 book ai didi

javascript - 需要澄清回调在 javascript 中的工作原理

转载 作者:行者123 更新时间:2023-11-28 19:59:21 24 4
gpt4 key购买 nike

我很难理解这个回调是如何调用的:

$(function () {
function getData(callback) {
var now = Date.now();
var hour = 60 * 60 * 1000;
var temperatures = [];
for (var k = 24; k > 0; --k) {
temperatures.push([now - k * hour,
Math.random() * 2 + 10 * Math.pow((k - 12) / 12, 2)
]);

}
callback ({data: temperatures });
}

getData(function (data) {
$.plot("#chart", new Array(data));
});
});

我很清楚循环中发生了什么,只需要通过回调进行澄清。那么,回调只是另一个函数,我们在其中创建一个方法?并为其分配一个温度数组?这部分真的让我很困惑。如果回调中的“数据”是一种方法,为什么我不能将其重命名为其他名称?虽然我可以在调用 getData 函数时将“data”参数重命名为任何我想要的名称。

有人可以提供此回调和温度数组关系的更易于理解的版本吗?谢谢。

最佳答案

您正在创建一个对象,该对象具有一个名为 data 的属性,其值是一个数组(您的温度)。该对象作为回调的第一个参数传递。

getData(function (data) {
$.plot("#chart", new Array(data));
});

此处,该对象作为名为 data 的参数传入。正如所写,我认为这不会起作用,因为您需要做的是将 array 传递给 new Array() 而不是对象。所以这样做:

getData(function (data) {
$.plot("#chart", new Array(data.data));
});

如果重命名对象属性会更容易理解一点:

callback ({temperatures: temperatures});

getData(function (data) {
$.plot("#chart", new Array(data.temperatures));
});

关于javascript - 需要澄清回调在 javascript 中的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21936196/

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