面向对象

先记住套路

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 一个函数时,

  1. 创建一个空对象,把一个空的对象的 proto 属性设置为 People.prototype
  2. 执行函数 People, 函数里面的 this 代表刚刚创建的新对象
  3. 返回这个对象

对于第3步,如果构造函数里有 return,分情况讨论。 如果 return 的是基本类型,会忽略不计。 如果 return 的是引用类型,则返回这个引用类型

原型图

Tips

任何函数都有 .prototype 这个属性,对应的值是一个对象叫原型对象,这个原型对象可以被由这个函数 new 的所有对象共享

原型图一定要会画

组件化:
function Carouse(){}
Carouse.prototype.init=function (){}
Carouse.prototype.bind=function (){}
new Carouse('#app')
new Carouse('#app2')

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容