美文网首页
eval作用域

eval作用域

作者: 薯条你哪里跑 | 来源:发表于2020-10-12 16:59 被阅读0次
var x = 'outer';
(function() {
  var x = 'inner';
  eval('console.log("direct call: " + x)'); 
  (1,eval)('console.log("indirect call: " + x)'); 
})();

输出

direct call: inner
indirect call: outer

原因:

  1. (1,eval)是个表达式,;类似1&&eval,属于间接引用了eval;
  2. eval 只在被直接调用时,this指向才是当前作用域,否则则是全局作用域;

stackoverflow: https://stackoverflow.com/questions/9107240/1-evalthis-vs-evalthis-in-javascript

参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/eval

相关文章

  • JS的作用域

    JS的作用域: 全局作用域、函数作用域、eval 作用域、块级作用域 全局作用域: 函数作用域: 结果截屏: 说...

  • 你不知道的 Javascript

    作用域 词法作用域:编译阶段确定(欺骗词法作用域 eval with) 块作用域 with try/catch l...

  • eval作用域

    输出 原因: (1,eval)是个表达式,;类似1&&eval,属于间接引用了eval; eval 只在被直接调用...

  • 2018-01-15

    延长作用域链~~with、eval、try-catch

  • 避免使用eval及with

    JavaScript中有两个可以破坏作用域的函数eval和with eval 上面代码运行后直接会修改全局作用域中...

  • JS中eval()解析和为什么不要使用eval

    eval翻译:是evaluate,评估,评价的意思。eval的重点在于eval函数名赋值给变量之后,它的作用域可能...

  • 7、运行时求值

    用eval()方法进行求值 eval()方法将执行传入的代码的字符串,并在调用eval()方法的作用域内进行代码求...

  • new Function

    1、eval中的代码执行时的作用域为当前作用域。它可以访问到函数中的局部变量。*2、new Function中的代...

  • 刷题记

    如下代码输出结果: 结果是1 这题考察的是eval的用法 直接调用时,作用域时局部的,间接调用时,作用域时全局的,...

  • ES6-let const

    let特性1.不能重复申明2.块级作用域 全局 函数 eval3.不存在变量提生4.不影响作用域链 const声明...

网友评论

      本文标题:eval作用域

      本文链接:https://www.haomeiwen.com/subject/iogeuktx.html