javascript 原型和原型链

前言

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

关于原型和原型对象

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

  区分以下几个属性:

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

继承和原型链

ObjectFunction

两个原型链

javascript 中的原型继承

更多的深入

instanceof

new

ES6的 class

posted @ 2019-11-17 00:03  黎志文  阅读(116)  评论(0编辑  收藏  举报