我经常使用这段代码来确定一个数组是否真的是一个数组......
Object.prototype.toString.call(array) == '[object Array]'
我最近开始更改我的回调测试typeof callback == 'function'
to callback instanceof Function
,因为我读到 Safari 和 Chrome 会告诉你正则表达式文字是一个使用前者的函数(当我测试它时它确实如此)。
现在,我决定检查这段代码,看看是否可以替换上面的冗长代码......
array instanceof Array
有效。
jsFiddle 上两者的比较 http://jsfiddle.net/alexdickson/dQA2m/.
那么,后一种方法有什么问题吗?我认为可能是因为第一个代码示例在 Google 中出现得更频繁。
在 ES5 中你可以调用:
Array.isArray(obj);
See https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray
也可以看看他们的笔记 https://developer.mozilla.org/web-tech/2010/07/26/determining-with-absolute-accuracy-whether-or-not-a-javascript-object-is-an-array/他们说纯 Javascript 实现不能保证 100% 模拟本机代码版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)