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

时间:2015-12-07 02:11:19

标签: javascript

我有一个通过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);
    });
})();

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

间接 var a = (0,eval)(script); 调用会评估全局范围内的代码,例如

set style fill patter 2 border
set style data lines
plot "data2.dat" using 1:3:4:5 with yerrorlines ls 1 linecolor rgb "blue",\
      ""         using 1:2 with filledcurves below linecolor rgb "red" 

"use strict"; might also be helpful.