gpt4 book ai didi

javascript - 我可以为函数绑定(bind) 'this' 以外的东西吗?

转载 作者:行者123 更新时间:2023-11-29 16:09:01 25 4
gpt4 key购买 nike

<分区>

我需要将外部变量传递给 jQuery Ajax 的成功函数。我的 ajax 是这样循环的:

var props = ['a', 'b', 'c'];

var results =
{
a: null,
b: null,
c: null
};

for(var key in props)
{
var prop = props[key];

$.ajax(
{
url: 'someurl',

data:
{
somedata: 'somevalue'
},

success: function(data, status, xhr)
{
// This here does not work properly, because the prop's value changes
// Due to promise stuff
results[prop] = data;
}
});
}

我需要将成功返回的数据填充到正确的位置,但上面的实现不起作用,因为 prop 的值在调用成功之前发生了变化。

我发现我可以通过像这样将成功函数的 this 与 prop 绑定(bind)来“绕过”这个问题:

success: function(data, status, xhr)
{
results[this] = data;
}.bind(prop)

但这似乎不是一个好主意,此外,我只能绑定(bind)一个变量,如果需要则不能绑定(bind)多个。

这似乎也不起作用:

success: function(data, status, xhr)
{
var privprop = prop;
results[privprop] = data;
}

那么基本上什么是给每个成功回调一个“私有(private)”变量的最好方法,哪个值是整个 ajax 制作时 prop 的值?我能否以某种方式绑定(bind)多个变量并覆盖 this 以外的内容?

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