4.17.对象成员查找机制
当访问⼀个对象成员(属性/⽅法)时,⾸先查找这个对象⾃身有没有该成员(属性/⽅法) 如果没有就查找它的原型对象(也就是proto指向的prototype原型对象) 如果还没有就查找原型对象的原型对象(Object的原型对象) 依此类推⼀直找到Object为⽌(null)
4.18.instanceof运算符
作⽤:⽤来检测 构造函数.prototype 是否存在于实例对象的原型链上
4.19.继承有哪些
盗⽤构造函数、原型继承 、组合继承 原型式继承、寄⽣式继承、寄⽣式组合继承
第⼀种 盗⽤构造函数 主要⽤call⽅法将⽗类所有的⾃身属性拿到⼦类进⾏继承 缺点就是没有办法继承原 型上⾯的东⻄ 优点:每⼀个实例都⾃⼰的属性 哪怕是引⽤值也不会进⾏污染
第⼆种 原型继承⼜叫原型链继承 它是将⼦类原型等于⽗类的实例 优点:可以拿到原型上⾯的⽅法 缺 点:原型是公共祖先有可能会被覆盖或修改
第三种 组合继承 将盗⽤构造函数和原型放到⼀起 缺点:call调⽤了⼀次 new也调⽤了⼀次 所以就调⽤ 了两次 浪费资源
第四种 原型式继承
第五种 寄⽣式继承
第六种 寄⽣式组合继承 也是最完美的 ⾥⾯主要有三种思想
第⼀步 盗⽤构造函数 拿到⽗类的⾃身属性
第⼆步 ⽤Object.create原型式继承拿到原型上的东⻄
第三步 将⼦类的构造函数指向⼦类本身