Javascript 原型,原型链

在js中,我们是使用构造函数去新建一个对象,每个构造函数都有一个prototype属性,这个属性值是一个对象(也叫做原型对象),这个对象包含了可以由构造函数的所有实例去调用的方法、属性。当我们用构造函数实例化一个对象时,这个对象内部会包含一个指针指向构造函数的prototype属性对应的值,在ES5中这个指针被称为对象的原型。一般来说我们是不应该能够获取这个值的。但是现在浏览器都实现了__proto__属性来让我们访问这个属性,但是我们最好不要使用这个属性,因为不符合规范。

ES5中新增加了一个Object.getPrototypeOf()方法,我们可以通过这个方法来获取对象的原型。当我们访问一个对象的属性时,如果这个对象内部不存在这个属性或方法,那么他就会去他的原型对象上找这个属性,这个原型对象又会有自己的原型,就这样一直找下去,这就是原型链的概念。

获取原型链的方法

  • obj.__proto__
  • obj.constructor.prototype
  • Object.getPrototypeOf(obj)

参考:JavaScript深入理解之原型与原型链

posted @ 2021-01-19 14:06  _大可乐  阅读(70)  评论(0编辑  收藏  举报