gpt4 book ai didi

javascript - 如何从 JS 中的监听器函数内访问对象

转载 作者:行者123 更新时间:2023-12-02 19:12:42 24 4
gpt4 key购买 nike

我想从 require() 函数的 success 监听器内部访问 foo.settings.debug 对象。我不断收到未定义的错误,当我引用“this”时,它最终会引用 ajax 对象。请帮忙。

var foo = {

info: {

version: '0.0.1'

},

settings: {

debug: true

},

require: function(script) {

$.ajax({
url: script,
dataType: "script",
async: false,
success: function(){
if(foo.settings.debug) console.log('loaded js file: ' + script);
},
error: function(){
throw new Error("Could not load script " + script);
}
});

}
}

最佳答案

您需要对 foo 的引用,它是 foo 内部的 thisthis 将是您的闭包内部的其他内容,因此您需要保留对 这个就像这样:

require: function(script) {
var self = this;
$.ajax({
url: script,
dataType: "script",
async: false,
success: function(){
if(self.settings.debug) console.log('loaded js file: ' + script);
},
error: function(){
throw new Error("Could not load script " + script);
}
});

}

关于javascript - 如何从 JS 中的监听器函数内访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13501290/

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