码迷,mamicode.com
首页 > 其他好文 > 详细

new Function和eval区别

时间:2018-12-22 22:39:49      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:运行   ons   作用   function   log   col   console   global   动态解析   

eval和new Function都可以动态解析和执行字符串。但是它们对解析内容的运行环境判定不同。

eval中的代码执行时的作用域为当前作用域。它可以访问到函数中的局部变量。

new Function中的代码执行时的作用域为全局作用域,不论它的在哪个地方调用的。所以它访问的是全局变量a。它根本无法访问b函数内的局部变量。

下面这个例子可以说明了:

var a = ‘global scope‘
function b(){
   var a = ‘local scope‘
   eval(‘console.log(a)‘) //local scope
   ;(new Function(‘‘,‘console.log(a)‘))() //global scope
}
b();

 

转自:https://www.cnblogs.com/zhangfengyang/p/5526024.html

 

new Function和eval区别

标签:运行   ons   作用   function   log   col   console   global   动态解析   

原文地址:https://www.cnblogs.com/justdoyou/p/10162704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!