根据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]”,...
字符串不是对象的类型,字符串是原始的
“我不明白为什么toString.call(new String)返回[object 字符串]从MDN,它应该返回[对象类型],其中类型 在这种情况下应该是对象,因为console.log(new String)打印 {“”}是对象。 [对象字符串]似乎也矛盾 因为字符串不是对象的类型,所以字符串是原始的“
从ECMAScript 5开始,您可以咨询new String
来深入研究此问题。