new操作符具体干了什么?
- 创建了一个新的对象;将对象与构造函数通过原型链连接起来;
- 将构建函数的this绑定到新的对象obj上;
- 根据构建函数返回类型作判断,如果是原始值责被忽略,如果是返回对象,需要正常处理;
function Person(name, age){
this.name = name;
this.age = age;
}
Person.prototype.sayName = function () {
console.log(this.name)
}
const person1 = new Person('Tom', 20)
console.log(person1)
person1.sayName()
function Test(name) {
this.name = name
return 1
}
const t = new Test('xxx')
console.log(t.name)
function Test(name) {
this.name = name
console.log(this)
return { age: 26 }
}
const t = new Test('xxx')
console.log(t)
console.log(t.name)