JavaScript中的原型链

原型链是js对象中的一个概念,当你引用一个对象的属性的时候js会从当前对象向上寻找一直找到Object对象的原型对象。那么一个对象的原型链是如何构建的?原型链的源头是谁?

JavaScript和Java很类似,Java中所有类的都继承一个类Object。JavaScript中原型链的源头就是Object。JavaScript中没有将类和对象分开,java中对象就是类的一个实例,在JavaScript中对象也是由对象生成的。Object也是一个对象,你可以使用它来构造出更多它的副本,它的每个副本都有一个属性__proto__指向Object的原型对象。

 

 

Array是js中标准库的一个对象,它也有一个__proto__属性指向了Object原型对象,如下图

 

 但是Object对象就没有__proto__属性因为它是原型链的源头

 

 关于new关键字

使用new命令时,它后面的函数依次执行下面的步骤。

  1. 创建一个空对象,作为将要返回的对象实例。
  2. 将这个空对象的原型,指向构造函数的prototype属性(将__proto__赋值为构造函数的原型对象)。
  3. 将这个空对象赋值给函数内部的this关键字。
  4. 开始执行构造函数内部的代码

https://wangdoc.com/ 这个是阮一峰老师的web教程,里面的js教程写的很好,可以看看

posted @ 2020-09-03 16:04  炒鸡  阅读(438)  评论(0)    收藏  举报