我有一个Web应用程序,它使用jsonp
将JavaScript代码返回给客户端。
这是我返回的代码(为了使其不可读):
com.xx.load('xx','var name="hguser";function data(x){console.info(x); }')
在
load
函数中,我们会eval
代码。然而,我们发现这样做会导致代码难以理解,也难以调试。因此,我想知道是否可以尝试以下方法:com.xx.load('xx',function(){
var name='hguser';
function data(x){
console.info(x);
}
});
那么,在load
函数中,我们现在将会eval
一个函数对象,而不是eval
代码字符串。
这个可行吗?
它们的意思相同吗?
new Function('var name="hguser";function data(x){console.info(x); }')
代替eval
。 - elclanrseval
而不是new Function
,因为返回的代码将访问在我的页面中定义的一些变量。但我想知道你是否指的是这个:(new Function('.....'))();
?因为eval
会立即执行代码。 - hguser