2013-05-15 16 views
0

FirstOfAll plz幫助我提供在不同對象中使用valueOf方法的信息。在不同對象中使用valueOf方法

String.prototype.valueOfObject.prototype.valueOf方法之間的差異,如爲什麼 當沒看見Object.prototype.valueOf.call("maizere")。既然這裏的valueOf是Object.prototypeString.protototype方法存在差異,但它輸出字符串,而不是[object String] .Shouldn't它輸出[object String] ?看來,如果該方法與valueOf方法屬於String.prototype因爲它輸出。感謝ü烏拉圭回合的幫助

+0

'Object.prototype.valueOf === String.prototype.valueOf' ='false'。 – Blender

+0

@ElliotBonneville no,{}。valueOf()返回數組,即[object Object] –

+0

@Blender在這裏有必要嗎? –

回答

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} 

StringvalueOf返回字符串和ObjectvalueOf返回一個對象,在這種情況下是一個字符串對象。他們不是一回事。

+0

不是valueOf Object.prototype的方法應該返回[object objectName],比爲什麼它返回字符串對象。它應該一直返回[object ObjectName]不是它嗎? –

+0

@Maizere:打開Chrome的控制檯並重試。它不返回'[object ObjectName]'。 – Blender

+0

我知道無論如何謝謝你 –

相關問題