问答

关于js用function和用class定义的类中使用eval作用域的问题

作者:admin 2021-09-06 我要评论

为什么在用function和用class定义的类中在同一个作用域内使用eval函数结果会不一样呢? function和class有什么区别呢? Chrome和火狐运行结果一样 (function(){ fu...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

为什么在用function和用class定义的类中在同一个作用域内使用eval函数结果会不一样呢?
function和class有什么区别呢?
Chrome和火狐运行结果一样

(function(){
    function A(){
        this.run=function(){
            eval("var b=0");
            //这里能输出b=0
            console.log(b)
        }
    }
    var a=new A();
    a.run();
})();
(function(){
    class A{
        run(){
            eval("var b=0");
            //这里b未定义
            console.log(b)
        }
    }
    var a=new A();
    a.run();
})();
(function(){
    class A{
        constructor(){
            this.run=function(){
                eval("var b=0");
                //这里b未定义
                console.log(b)
            }
        }
    }
    var a=new A();
    a.run();
})();
(function(){
    class A{
        constructor(){
            eval("var b=0");
            //这里b未定义
            console.log(b)
        }
    }
    var a=new A();
    a.run();
})();
###

class 内部是是严格模式。

严格模式下 eval 的里 var 仅在内部可见。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 关于js用function和用class定义的类中

    关于js用function和用class定义的类中

  • iview中的modal组件怎么设置高度?

    iview中的modal组件怎么设置高度?

  • Nginx和前端缓存问题

    Nginx和前端缓存问题

  • 前端面试算法题,选马问题,面试没成功

    前端面试算法题,选马问题,面试没成功

腾讯云代理商
海外云服务器