李金帅
能将喜欢的东西留在身边,这就是我努力的意义。

原型与原型链

2021-04 JS
Word count: 337 | Reading time: 1min

1. 什么是原型? 什么是原型链?

在js中万物皆对象,所以原型又称原型对象,每个对象都有一个__proto__属性,这个属性就是原型对象。
另外在js中的函数比较特殊,它有一个prototype属性,是函数的原型对象,称为函数原型。

函数对象的原型:Person.prototype
普通对象的原型:obj.proto

原型链:一个对象,通过__proto__或者prototype可以找到它的原型对象,原型对象继续向上查找原型对象,一直到Object对象为至,这样的递归查找过程就是原型链(继承链)。

2. 普通对象和函数对象?

概括:
使用typeof判断类型时,返回function的都是函数对象,否则是普通对象。(特殊的是Object)
或者如下描述:
凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。

3. 构造函数的原型对象和构造函数本身的关系?

原型对象(Person.prototype)是 构造函数(Person)的一个实例。

原型的构造函数属性(constructor)等于构造函数(Person)本身
Person.prototype.constructor = Person

构造函数 > 原型对象

原型及原型链文档:
https://baijiahao.baidu.com/s?id=1604426873229560999&wfr=spider&for=pc
https://www.jianshu.com/p/dee9f8b14771
https://zhuanlan.zhihu.com/p/35790971

Author: 李金帅

Link: https://lijinshuai21.github.io/Li_JinShuai_Blog/2021/04/01/%E5%8E%9F%E5%9E%8B%E5%8F%8A%E5%8E%9F%E5%9E%8B%E9%93%BE/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
进程 线程 同步 异步
NextPost >
构造函数
CATALOG
  1. 1. 1. 什么是原型? 什么是原型链?
  2. 2. 2. 普通对象和函数对象?
  3. 3. 3. 构造函数的原型对象和构造函数本身的关系?