javascript – 为什么有些方法有.prototype而其他方法没有?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么有些方法有.prototype而其他方法没有?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
关于原型的问题:
为什么有些Array方法有.prototype而有些没有?

documentation声明“Array.prototype表示Array构造函数的原型”.

我试图调和这个语句,理解prototype是一个引用父类型的属性,因为这就是继承的实现方式.

如果后者为真,那么“拥有”map()和indexOf()等方法父类型是什么?

我的主要问题是第一行的问题.

解决方法

I am trying to reconcile this statement with the understanding that prototype is a property referring to the parent type,since that is how inheritance is achieved.

否.与另一个对象(从中继承属性)的原型关系是通过不可见的链接完成的,有时表示为[[prototype]].

构造函数上的实际现有.prototype属性是该对象构造的所有实例都将继承的对象.

所以Array对象的原型(继承)链看起来像这样:

null
                               ^
                               |
Object.prototype ---> {hasOwnProperty(),…} // all objects inherit these
                               ^
                               |
Array.prototype ----> {map(),indexOf(),…} // all arrays inherit these
                               ^
                               |
                      {length,1,2,…} // an example array
                      // as if constructed by new Array(5) or [42,7,6]

Why do some methods have .prototype and some don’t?

.prototype上可用的函数将由所有实例继承,如果它们是它们的方法,您可以直接在它们上调用它们.

直接放在构造函数上的函数,如Array.isArray或Array.of,不是与实例相关的,而是“静态”的.您主要使用非数组作为参数调用它们.

原文链接:https://www.f2er.com/js/158454.html

猜你在找的JavaScript相关文章