使用obj.constructor === Array
测试对象是否为建议的here数组是否正确?是否始终返回与Array.isArray
兼容的正确答案?
答案 0 :(得分:7)
取决于某些情况,它可以返回不同的值,但Array.isArray
会起作用。
一个窗口的Array
对象与另一个窗口中的Array
对象不同。
var obj = someIframe.contentWindow.someArray;
console.log(obj.constructor === Array);//false
console.log(Array.isArray(obj));//true
constructor
属性可以被覆盖。
var obj = [];
obj.constructor = null;
console.log(obj.constructor === Array);//false
console.log(Array.isArray(obj));//true
另一个对象也可以将constructor
属性设置为Array
。
var obj = {};
obj.constructor = Array;
console.log(obj.constructor === Array);//true
console.log(Array.isArray(obj));//false