js中的new
构造函数其实就是一个能返回对象的函数
不使用new来创造一个构造函数:
function person(name,age){
const obj = {}
obj.__proto__ = person.prototype
obj.name = name
obj.age = age
return obj
}
person.prototype.eat = function(){
console.log(`${this.name}正在吃饭`)
}
var z = person('zink',21)
z.eat() //zink正在吃饭
使用new来创造一个构造函数:
function Person(name,age){
this.name = name
this.age = age
}
Person.prototype.eat = function(){
console.log(`${this.name}正在吃饭`)
}
var zz = new Person('zink',21)
zz.eat() //zink正在吃饭
仔细对比两个函数我们就能知道new操作符干了什么:
- 创建临时对象
- 配置临时对象
- 绑定临时对象的原型
- return 临时对象
end