Javascript——对象原型与原型链
- 了解函数属性——prototype
prototype
是每一个函数天生自带的属性,prototype
属性又指向一个prototype
对象,prototype
属性和prototype
对象是两个不同的东西prototype(原型对象)
对象内部有一个constructor
属性,constructor
属性指向一个constructor
对象,constructor
对象就是这个函数本身
文章图片
- 了解函数属性——__proto__
__proto__
属性是每一个对象天生自带的属性,指向所属函数的原型对象,实例化对象也是对象,所以也带有__proto__
属性
function Person(name,age){ this.name = name this.age = age this.sayHi = function (){ console.log('hello') } let p1 = new Person('Jack',18) let p1 = new Person('Rose',20)
文章图片
- 了解对象访问机制
- 当访问一个对象成员的时候,如果对象本身有该成员,则直接返回结果,停止查询;如果本身没有,则自动去
__proto__
上访问查找,如果还没有,继续去__proto__
上访问查找,直到顶级对象的__proto__
都没有就返回 undefined - 每一个函数天生自带一个属性
prototype
属性,是一个对象 - 每一个对象天生自带一个属性
__proto__
属性,用于指向所属构造函数的prototype
- 当一个对象没有准确的构造函数来实例化时,那么默认看作是内置构造函数 Object 的实例对象
- 当访问一个对象成员的时候,如果对象本身有该成员,则直接返回结果,停止查询;如果本身没有,则自动去
- 原型
- 原型是每个函数天生自带的一个叫做
prototype
属性,prototype
属性指向寒素的prototype
原型对象 prototype
中的constructor
属性(构造器)指向当前原型对象所属的构造函数
文章图片
- 原型是每个函数天生自带的一个叫做
- 原型链
- 从任何对象出发,按照
__proto__
开始往上查找,最终都能查找到 Object.prototype,那么由__proto__
串联起来的对象链状结构叫做原型链
数组.__proto__ === Array.prototype Array.prototype.__proto__ === Object.prototype 数组.__proto__.__proto__ === Object.prototype
【Javascript——对象原型与原型链】
文章图片
- 从任何对象出发,按照
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 事件代理