js进阶笔记--原型链相关

1、昨天说了,构造函数的方法对象都放到prototype里,实例对象可以直接使用,那么为什么实例对象可以直接使用呢?就是因为__proto__的存在。

存在一个三角关系

js进阶笔记--原型链相关_第1张图片

new Star().__proto===Star.prototype

Star.prototype.constructor=Star

__proto__是对象专有,所以叫对象原型,而prototoype叫原型对象

2、继承

继承是面向对象的三大特征之一

写法为:js进阶笔记--原型链相关_第2张图片

其中say是Singer自带的方法,这样Singer不仅继承了Star的内置属性,同时也拥有自己的方法。

就是把孩子,也就是继承者看作是父类的对象去创建,这样在对子类添加新的方法时,则不会对父类产生影响。

3、原型链

就是实例的__proto__指向构造函数的prototype,而父类的prototype也有__proto__,因为他也是个对象,他的__proto__再指向他的父辈的prototype,以此类推,直到最高阶Object,这条链就是原型链。Object.prototype.__proto__=null,就是指到头,没有啦

4.instanceof

就是查看原型链上是否存在该父类

会显示true。

补充闭包

今天看课的时候,老师说闭包,没想起来,就重新看了一下,主要写法如下

js进阶笔记--原型链相关_第3张图片

你可能感兴趣的:(笔记)