在不同的对象中使用valueOf方法

时间:2013-05-15 18:02:03

标签: javascript

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 。谢谢你的帮助

1 个答案:

答案 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}}返回一个对象,在本例中是一个字符串对象。它们不是一回事。