JavaScritpt 对象小结
构造函数,原型对象,实例对象三者之间的关系
每创建一个函数都含有一个prototype的属性,该属性是一个指针,指向原型对象。
原型对象上含有一个constructor属性,该属性也是一个指针,指向相关联的构造函数。
通过构造函数产生的实例对象含有一个proto属性,指向原型对象,使其能过访问原型对象上的属性和方法。
- 总结:每个函数都有一个原型对象,原型对象上都有一个指向函数的指针,实例中也有指向原型对象的指针,而原型对象中有可以找到函数的制针。
1 | //People构造函数 |
原型链
上面说到,每个函数都有一个prototype属性,指向原型对象,可通过将该函数的prototype属性赋值为其他对象的实例,从而共享了其他对象的方法和属性,实现原型链继承。
1 | function People(){ |
- 总结:
和链表有一点像,重写Man的prototype属性,从而使Man的实例proto属性也改变,实现原型链。