gpt4 book ai didi

javascript - 函数内部 Javascript 全局变量绑定(bind)的状态

转载 作者:行者123 更新时间:2023-11-29 17:28:15 26 4
gpt4 key购买 nike

我正在执行一个 AJAX 调用(使用 dojo),我想知道将调用对象传递给回调函数的最佳方法是什么

var that = this;
dojo.xhrGet({
url : 'script.php',
handleAs : "javascript",
load : function(response){
/*The callback on success*/
console.log('Ajax Completed Successfully for: ' + that.name);
}
});

我的问题是 load 是在“编译时”创建的,还是在“运行时”求值的。基本上,如果 that 的值在创建 var that = this 和在 AJAX 返回并调用 load 后被调用之间发生变化,此更改会反射(reflect)在 load 中吗?如果是这样,那么确保 AJAX 返回信号调用正确对象的最佳做法是什么?我是否必须为每个对象创建一个特定的加载函数?

谢谢

最佳答案

您可以将您的负载封装在一个闭包中:

(function(that){
dojo.xhrGet({
url : 'script.php',
handleAs : "javascript",
load : function(response){
/*The callback on success*/
console.log('Ajax Completed Successfully for: ' + that.name);
}
});
})(this);

(function(x){ })(x); 部分是一个自执行函数,它给出 xthis 作为自执行函数的参数。 xthat 的值保持原样。

关于javascript - 函数内部 Javascript 全局变量绑定(bind)的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6696908/

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