new+函数名 和直接调用函数的区别

function Person(name,age) {
    this.name = name;
    this.age = age;
    console.log(this)//此时的this指Person对象;
    
}
var person = new Person("张三",18)

返回的新对象是由解析器自己生成的。

function Person(name,age) {
    this.name = name;
    this.age = age;
    console.log(this)//此时的this指window对象,我们在函数中定义的age,name都在window对象中;相当于普通函数的调用
    
}
var person = Person("张三",18)

相当于普通函数调用,返回的对象是根据Person函数返回的。

猜你喜欢

转载自blog.csdn.net/qq_38180363/article/details/81352025