我經常用這個代碼,以確定如果數組是一個真正的數組...這是一個可接受的方式來確定一個對象是否是JavaScript中的數組?
Object.prototype.toString.call(array) == '[object Array]'
最近,我開始改變我的回調測試從typeof callback == 'function'
到callback instanceof Function
,因爲我讀的Safari和Chrome會告訴你一個正則表達式文字是使用前者的函數(當我測試它時,它是這樣做的)。現在
,我決定去檢查這個代碼,看看我是否能取代上述冗長的代碼...
array instanceof Array
它的工作。
Comparison of both on jsFiddle。
那麼,後一種方法有什麼問題嗎?我認爲可能是因爲第一個代碼示例在Google中出現得更多。
謝謝。
謝謝,但如果[我覆蓋'Object'](http://jsfiddle.net/alexdickson/dQA2m/1/)會發生同樣的情況嗎? – alex 2011-03-17 08:41:53
難道你不能輕易重寫'Object.toString'嗎? - 'Object.prototype.toString = function(){return「:-)」;}' - Demo:http://jsbin.com/awixe4。我懷疑JavaScript是瘋了。 – Kobi 2011-03-17 08:43:25
有** **無故障安全方法 – Alnitak 2011-03-17 09:13:42