FirstOfAll plz帮助我提供了在不同对象中使用valueOf方法的信息。
String.prototype.valueOf
和之间是否有区别?
Object.prototype.valueOf
方法,如果存在差异原因
Object.prototype.valueOf.call("maizere")
时没有看到。由于此处的valueOf是Object.prototype
而不是String.protototype
的方法,但它输出字符串而不是[object String]
。它不应该输出[object String]
吗?似乎valueOf方法属于String.prototype
,因为它输出 string 。谢谢你的帮助
答案 0 :(得分:1)
这里的主要区别在于strings and string objects:
> typeof String('foo')
"string"
> typeof new String('foo')
"object"
> "foo" === String('foo')
true
> "foo" === new String('foo')
false
> String.prototype.valueOf.call("maizere")
"maizere"
> Object.prototype.valueOf.call("maizere")
String {0: "m", 1: "a", 2: "i", 3: "z", 4: "e", 5: "r", 6: "e", format: function, truncate: function, splitOnLast: function, contains: function}
String
的{{1}}返回一个字符串,valueOf
的{{1}}返回一个对象,在本例中是一个字符串对象。它们不是一回事。