先记住套路
function People(name){
this.name = name
}
People.prototype.sayName = function(){
console.log(`My name is ${this.name}`)
}
var p = new People('jirengu')
p.sayName()
发生了什么
当 new 一个函数时,
- 创建一个空对象,把一个空的对象的 proto 属性设置为 People.prototype
- 执行函数 People, 函数里面的 this 代表刚刚创建的新对象
- 返回这个对象
对于第3步,如果构造函数里有 return,分情况讨论。 如果 return 的是基本类型,会忽略不计。 如果 return 的是引用类型,则返回这个引用类型
原型图
Tips
任何函数都有 .prototype
这个属性,对应的值是一个对象叫原型对象,这个原型对象可以被由这个函数 new 的所有对象共享
原型图一定要会画
组件化:
function Carouse(){}
Carouse.prototype.init=function (){}
Carouse.prototype.bind=function (){}
new Carouse('#app')
new Carouse('#app2')
网友评论