new函数() 和 普通函数() 的区别
2019-07-07 本文已影响0人
关耳木南
区别:
1、new执行的函数,函数内部默认生成了一个对象
2、函数内部的this默认指向了这个new生成的对象
3、new执行函数生成的这个对象,是函数的默认返回值
function fn(){
console.log(this)
}
fn(); //this指向window
new fn(); //this指向fn 指向一个对象
function fn1(){
}
var obj1 = fn1();//遇到等号先看右边,fn1函数执行,执行完函数拿到最简结果(函数的返回值)才会进行赋值
var obj2 = new fn1();
console.log(obj1);//undefined
console.log(obj2);//fn1{}