2010-09-10 69 views
0
return 0['toString']['length']; 

爲什麼它返回1的JavaScript length屬性

+0

請問,這是什麼意思結構? 「0」數字字符串和該字符串的長度?它顯然是1. – 2010-09-10 08:38:30

+0

@Tomasz但是'1000 ['toString'] ['length']'也給出了'1' – 2010-09-10 08:40:09

回答

9

1000['toString']爲您提供函數對象Number.prototype.toString,而在JS中,函數對象有一個名爲length的屬性,它返回該函數採用的參數個數。在這種情況下是1,因爲Number.prototype.toString收到一個基數參數。

alert(Number.prototype.toString.length) // 1 

參考文獻:

2

由於字符串"0"的長度爲1個字符?

+0

但是他沒有調用'toString()'方法,所以長度屬性是針對該方法的。 – slikts 2010-09-10 08:46:39

+0

是的,事實上我的回答並不好,只是一個嘗試;)但這是一個奇怪的語法在這裏使用(無論如何,Javascript只是strance) – romaintaz 2010-09-10 08:51:26