我经常用这个代码,以确定如果数组是一个真正的数组...这是一个可接受的方式来确定一个对象是否是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