当前位置: 首页 > 网络应用技术

JavaScript的透彻理解原型和原型链

时间:2023-03-07 13:00:56 网络应用技术

  原型和原型链的知识一直是访谈的重点。说这并不难,但是要完全理解它并不难,但它仍然有一定的努力。让我们首先看一下面试问题。

  所有对象基本上都是由对象的形式(相当于语法糖果)创建的。

  所有功能基本上都是创建的,包括等。

  所有功能都是对象。

  每个函数都有一个属性,即原型。默认情况下,它是一个普通对象。该对象是由构造函数创建的实例的原型。

  从原型到构造函数的构造函数也有属性:

  所有对象(除外)都有一个属性,该属性指向对象的原型。

  显然,实例的属性指向建设性函数的原型。示例的数量会指向相同的原型吗?

  实际上,您可以在这里有一些想法。多个示例指向构造函数的原型。然后,如果实例可以以一种方式访问原型方法,属性等,则可以实现继承的效果。

  让我们继续更新原型和原始链之间的关系:

  在搜索属性时,如果找不到它,您将沿着与对象关联的原型找到它。如果找不到它,请转到原型的原型,直到找到顶层。

  在面对面问题的帮助下,给出一些原始链的例子:

  学习上述内容后,可以做出大多数面试问题,例如

  但是,缺乏最初的访谈问题来解决该文章,例如等等,然后我们将一一克服它。

  是的,原型是所有函数实例的原型,例如,上面提到的

  这是一个普通的对象,所以

  :指向创建它的构造函数的原型,谁创建了?实践证明了只有函数。proto-> function.protype

  当创建功能没有任何内容时,当引擎启动时,将其添加到内存中

  考虑结果,您是否得到了结果,是功能不是猴子的功能,它跳出了石头裂缝?。

  猜想:该功能也是对象,它会指向吗?但是上面提到,它是生成的。如果它确实是如此有针对性,那有点令人困惑,所以我去做测试:

  最终将原型和原始链的知识浓缩为图片:

  知识的海洋通常比预期的要广泛,而且原型和原型链反复学习了很多次。我认为这应该是全面而完美的。但是在遇到这个采访问题之后,我发现我学到的只是一个分支。JS中确实有很多深层的珍宝等待着挖掘。在没有地平线的情况下,在海上挖掘,并鼓励君主。

  最后,附加了一个简单的访谈问题以提高自信心:

  本文图片的一部分:奥迪教育的学习材料

  作者:战场包