javascript 原型和原型链

前言

  javascript 是基于原型继承的语言,熟悉其原型规则以及原型链很是有必要。此随笔记录对原型和原型链、继承的学习,以及对 instanceofnewclass 等关键字的理解。javascript

关于原型和原型对象

  原型是一个名为 prototype 的属性,每当建立一个函数时,该函数就会自带该属性,而该属性指向一个对象,称为原型对象。而对于对象来讲,每一个实例对象都有一个私有属性(__proto__),其指向它的构造函数的原型对象(prototype),而每一个原型对象包含一个属性(constructor),其指向对象的构造函数。参考自 [MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)。java

  区分如下几个属性:es6

  • prototype:由构造函数建立的对象都有该属性,指向该对象的原型对象
  • __proto__:全部实例对象都有该属性,指向它的构造函数的原型对象,例 a.__proto__ === A.prototype
  • constructor:全部原型对象都包含的属性,指向对象的构造函数,例 A.prototype.constructor === A

继承和原型链

ObjectFunction

两个原型链

javascript 中的原型继承

更多的深刻

instanceof

new

ES6的 class

相关文章
相关标签/搜索