我很好奇是否有任何方法可以用用户定义的对象虚拟出Array.isArray()
。你可以使用用户定义的对象来伪装Array.isArray()吗?
从书的JavaScript模式:
Array.isArray([]); // true
// trying to fool the check
// with an array-like object
Array.isArray({
length: 1,
"0": 1,
slice: function() {}
}); // false
该对象显然失败了,但是否有任何其他的方式做到这一点?这纯粹是好奇心,而不是因为我认为你可以在普通客户端代码中使用.isArray()
(尽管知道你是否可以!显然是太棒了!)。
现在你已经促使我提出一个后续的问题:http://stackoverflow.com/questions/8672204/can- you-set-the-internal-class-property-of-ecmascript-object – 2011-12-29 19:10:57