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
核心是第三点