什么's是原型对象的真实名称

What's the real name of a prototype object?

本文关键字:对象 真实 实名 原型 什么      更新时间:2024-05-17

使用此:

console.log(String.prototype);

Chrome注销:

String{}

有了这个:

console.log(String);

Chrome注销:

function String(){ [native code] }

既然String{}String()的名称相同,为什么console.log(String)选择函数而不是对象?

既然String{}String()的名称相同,为什么console.log(String)选择函数而不是对象?

原因很明显:String一个函数,而String.prototype则是对象。如果Chrome为这两种不同的值/数据类型生成相同的输出,那将相当令人困惑。

对于函数,Chrome实际上显示了函数(func.toString())的实现。有些函数不是用JavaScript实现的,而是用本机代码实现的,因此您可以看到[native code]

对于对象,Chrome采用对象的constructor属性所引用的函数的名称(如果可用)。String.prototype.constructor的值为String

String是构造函数(一个函数),String.prototypeString类(本例中为{})的原型,这一点不足为奇