0
点赞
收藏
分享

微信扫一扫

使用node把任意网站封装为可执行文件

梦想家们 2024-06-20 阅读 28

一:原型链底层原理

以下面一段代码为例,基于原型对象(Star构造函数的原型对象)的继承使得不同构造函数的原型对象关联在一起(此处是最大的构造函数Object原型对象),并且这种关联的关系是一种链状结构,我们将原型对象的链状结构关系称为原型链。

因为prototype是一个对象,所有会有自身的对象原型(__proto__),对象原型指向上一级的原型对象,所以就形成了原型链。因为Object是最大的构造函数,其原型对象通过对象原型向上寻找原型对象是就为null

<script>
    function Star() {
    }
    const ldh = new Star()
  </script>

二:原型链——查找规则(应用)

  1. 当访问一个对象的属性和方法时,首先查找这个对象自身有没有该属性
  2. 如果没有就查找它的原型对象(实例对象.__proto__指向的prototype原型对象)
  3. 如果还没有就查找原型对象的原型对象(Object的原型对象)
  4. 依此类推一直查找到Object为止(null)

__proto__对象原型的意义就在于:为对象成员查找属性和方法机制提供一个方向,或者说一条路线

例如:数组也是同理,我们创建了一个数组,要使用到map()方法进行遍历。先会查询当前的数组是否具有map方法,没有的话查找该数组的原型对象,又没有。则最终上升到Array构造函数的原型对象中,这也就是为什么我们在MDN上查找map()方法时,会有Array.prototype.map()

举报

相关推荐

0 条评论