对于面向对象的一点理解

2018-03-28  本文已影响0人  darkTi

对于面向对象,我的理解是第一先构造函数,第二往这个构造函数自带的prototype属性里添加属性,第三,new这个函数创建一个对象,然后使用这个对象里的属性,下面就详细来理解一下~

  1. 声明函数
function home(name){
    this.name = name
}

这时这个构造函数里还会出现一个prototype的属性,这是每个函数都自带的属性;

  1. 向这个函数的prototype属性添加你所需要的属性
home.prototype.baba = function(){console.log(`我是${this.name}`)}
  1. 创建一个对象,即new这个构造函数,那么这个对象的_proto_属性就被设置为这个构造函数的prototype的属性了(因为对象本身就具有_proto_属性,new home时,_proto_就成为home.prototype;new people时,_proto_就成为people.prototype
var h = new home('a')
h.baba() // 'a'
image.png

记住:函数本身有prototype属性,对象本身有_proto_属性,函数的prototype属性对应的值是一个对象,叫做原型对象,这个原型对象可以被这个函数new出来的所有对象共享

有了这个原型之后,我们可以把用到的属性都写到这个原型中,每次只需创建不同的对象,这两个对象虽然功能都一样,但却是完全独立的两个组件,这就是组件化

上一篇 下一篇

猜你喜欢

热点阅读