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

时间:2013-12-09 03:51:46

标签: javascript

有了这个:

console.log(String.prototype);

Chrome注销:

String{}

有了这个:

console.log(String);

Chrome注销:

function String(){ [native code] }

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

2 个答案:

答案 0 :(得分:3)

  

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

出于显而易见的原因:String 功能String.prototype 对象。如果Chrome为这两种不同的值/数据类型生成相同的输出,那将会相当混乱。

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

对于对象,Chrome会获取对象的name of the function(如果可用)referred to by the constructor propertyString.prototype.constructor的值为String

答案 1 :(得分:0)

String是构造函数(函数),String.prototype不出所料是String类的原型(在这种情况下为{}