如何在不使用全局变量的情况下将变量传递给字符串化函数

How can I pass a variable to a stringified function without using globals?

本文关键字:变量 字符串 函数 情况下 全局变量      更新时间:2023-09-26

我有一个通过XHR下载的脚本。我想将一段数据传递给这个脚本,而不向全局范围添加任何内容。也就是说,我不想让脚本中的函数具有全局性,也不想让我想传递给函数的参数具有全局性。

为了更清楚,我想在不使用eval的情况下完成以下任务:

(function(){
    var myToken = '1234';
    $.get(url).then(function(script){
        // script could be something like: '(function(z){ console.log(z);     })'
        var a = eval(script);
        a(myToken);
    });
})();

有什么想法吗?

间接eval调用在全局范围内评估代码,例如

var a = (0,eval)(script);

CCD_ 2可能也有帮助。