如何解释在对象上使用tostring()的结果

问题描述 投票:0回答:3

根据MDN,

默认情况下,toString()方法由Object派生的每个对象继承。如果在自定义对象中未重写此方法,则toString()返回“ [object type]”,其中type是对象类型。

我的第一个问题是对象类型是什么意思?这是否意味着数组,函数,对象,日期?我已经在Google中搜索了对象类型,但是找不到完整的说明。考虑以下示例

const toString = Object.prototype.toString; toString.call(new Date);
toString; toString.call(new Date);    // [object Date]
toString.call(new String);  // [object String]
toString.call(Math);        // [object Math]

我不明白为什么toString.call(new String)返回[object String]从MDN,它应该返回[object type],在这种情况下,该类型应该是object因为console.log(新字符串)会打印出{“”}这是一个对象。 [object String]似乎也很矛盾,因为String不是Object的类型,String是Primitive的。

根据MDN,默认情况下,toString()方法由Object派生的每个对象继承。如果在自定义对象中未重写此方法,则toString()返回“ [object type]”,...

javascript tostring
3个回答
0
投票

字符串不是对象的类型,字符串是原始的


0
投票

“我不明白为什么toString.call(new String)返回[object 字符串]从MDN,它应该返回[对象类型],其中类型 在这种情况下应该是对象,因为console.log(new String)打印 {“”}是对象。 [对象字符串]似乎也矛盾 因为字符串不是对象的类型,所以字符串是原始的“


0
投票

从ECMAScript 5开始,您可以咨询new String来深入研究此问题。

© www.soinside.com 2019 - 2024. All rights reserved.