javascript - javascrip 怎么执行字符串里面的函数
本文介绍了javascript - javascrip 怎么执行字符串里面的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
昨天突然想到,js里面,这种情况
var aa='console.log(123)';
代码就是上面这样,有什么方法可以让字符串里面的函数执行?推荐使用什么方法?
解决方案
首先回答楼主,使用Function构造会比直接使用eval好一些:
var str = 'console.log(123)';
var fn = Function(str);
fn();
eval这个关键字不建议使用,个中原因在秘密花园也有解释
http://bonsaiden.github.io/Ja...
不过花园中只一再提到不要使用eval,并且给了以下示范:
var foo = 1;
function test() {
var foo = 2;
eval('foo = 3');
return foo;
}
test(); // 3
foo; // 1
但却没有给出解决方案,我个人推荐做法,就是通过构造函数为‘期望执行的代码’创建新的函数作用域,尽可能减少对当前作用域的影响/污染
var foo = 1;
function test() {
var foo = 2;
(Function('foo = 3'))();//
return foo;
}
test(); // 2
foo; // 1
有其他解决方案也可以继续交流
这篇关于javascript - javascrip 怎么执行字符串里面的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文