我可以使用 `obj.constructor === Array` 来测试对象是否为数组吗?
Can I use `obj.constructor === Array` to test if object is Array?
使用 obj.constructor === Array
来测试一个对象是否是建议的数组 here 是否正确?它总是 returns 与 Array.isArray
兼容的正确答案吗?
视情况而定,在某些情况下它可以 return 不同的值,但 Array.isArray
会起作用。
一个 window 的 Array
对象与另一个 window 中的 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
使用 obj.constructor === Array
来测试一个对象是否是建议的数组 here 是否正确?它总是 returns 与 Array.isArray
兼容的正确答案吗?
视情况而定,在某些情况下它可以 return 不同的值,但 Array.isArray
会起作用。
一个 window 的 Array
对象与另一个 window 中的 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