javascript – 为什么函数原型被重复链接?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么函数原型被重复链接?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对 JavaScript很新我正在阅读JavaScript的好零件.它说 :

Every function object is also created with a prototype property

所以我做了这样的事情:

function test() {
}

console.log(test.prototype);

使用Chrome的开发人员工具,我会发现如下输出

我真的很困惑这个输出.为什么构造函数的原型属性再次嵌套构造函数?为什么这样像一条链?我在哪里错过了这个概念?

提前致谢.

解决方法

一个函数的prototype属性保存该对象,当使用new操作符创建时,该函数的所有实例将继承.并且所有这些原型对象(通常)都有一个构造函数属性,它返回到函数中 – 那里有循环引用.所以,作为一个新的测试()继承该属性,(new test).constructor === test评估为true.

您将需要区分函数对象的原型属性和对象继承的原型对象 – 通常引用为“内部[[prototype]]属性.

一个构造函数是一个函数,不是说一个Function,而且都有两个.因此,它继承自Function.prototype对象,其中构造函数属性表示所有函数都由Function构造函数构造.如果您的开发人员控制台将显示Function对象的原型,您可以看到它们.我认为在设置中有一个选项.

所以,着名的“原型链”不是关于构造函数和/或原型属性,而是关于该对象从其继承的原型对象:

function test() {}              new test()
   (a Function)              (a test instance)
        ||                           ||
        ||                           ||
        \/                           \/
 Function.prototype            test.prototype
(a Function,by spec)           (an Object)
        ||                           ||
        ||                           ||
        \/                           \/
 Object.prototype             Object.prototype
        ||                           ||
        ||                           ||
        \/                           \/
       null                         null
原文链接:https://www.f2er.com/js/150304.html

猜你在找的JavaScript相关文章