gpt4 book ai didi

javascript - 使用 jQuery 加载脚本时保持作用域

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:36:31 25 4
gpt4 key购买 nike

假设我有一个包含以下内容的文件“test.js”:

var test = 'something';

然后我有一个主要脚本需要加载 test.js 以获取测试变量。

显然这是可行的:

$.ajax({dataType: "script", cache: true, url: 'test.js'});

问题是变量 test 存在于全局范围内。我很好奇是否有办法将它添加到对象中并将其置于全局范围之外。

类似于:

function scriptloader() {
this.grabscript = function() {
return $.ajax({dataType: "script", cache: true, url: 'test.js'});
}
}

var myloader = new scriptloader();

myloader.grabscript();

理想情况下,myloader 将包含加载变量 test。但是,我可以使用 console.log(test) 并仍然看到“某些东西”。

有没有办法将加载的脚本锁定到范围内,还是我在做梦?

最佳答案

你可以尝试这样的事情:

function scriptloader() {
this.grabscript = function() {
var loader = this;
$.ajax('test.js', {
complete: function(response) {
var js = '(function() {' + response.responseText + ' loader.test = test; })();'
eval(js);
},
dataType: 'text'
});
}
}

scriptloader 实例将获得一个名为 test 的属性。

关于javascript - 使用 jQuery 加载脚本时保持作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14248491/

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