为什么输出结果是这样的


 var num = 123;
        function fn() {
            // var num = 222;
            this.num = 456;
            console.log(num);
        }
        new fn(); //123

        fn();    //456

这里全局定义了num,直接调用fn()这时候num是指向全局的num,this.num才是456,(当然如果你更丧心病狂一点用(0,fn)()的方法调用你会发现这时候函数内外的num就成一个了)
至于new fn()
可以先看这篇文章讲的new的作用
https://blog.csdn.net/qq_44717274/article/details/120135243
核心是第三点

img