使用obj.constructor === Array
来测试对象是否为建议的阵列here是否正确?它是否始终返回与Array.isArray
兼容的正确答案?我可以使用`obj.constructor ===数组`来测试对象是数组吗?
3
A
回答
5
取决于,有几种情况下它可以返回不同的值,但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
+1
另请参见:var arr = []; arr .__ proto__ = Object.create(Array.prototype,{constructor:{value:MyArraySubclass}});' – Bergi 2015-04-01 20:10:34
相关问题
- 1. 我们可以在C中的数组中使用数组吗?
- 2. 使用Lodash将数组转换为嵌套对象,可以吗?
- 3. 我可以创建一个新的SensorEvent对象来测试onSensorChanged()函数吗?
- 4. 创建可以像数组和对象一样使用的JavaScript数组对象
- 5. 是否可以知道添加对象的数组(或数组)?
- 6. 我可以在JavaScript中创建自己的数组对象吗?
- 7. 我可以将对象列表转换为二维数组吗
- 8. 我可以有一个嵌套的numba对象数组吗?
- 9. 我应该使用数组还是对象来构建摘要?
- 10. Perl可以检测数组吗?
- 11. 我可以使用angular.js与对象,而不是函数吗?
- 12. 我可以在JavaScript中使用自定义toString的对象数组吗?
- 13. 如果对象被多维数组保存,我可以使用该方法吗?
- 14. 我可以使用实例化的对象作为数组键吗?
- 15. Angular2测试:服务返回函数,而不是对象数组
- 16. 测试对象是否是Clojure中的Java基元数组
- 17. 是否有测试来查看对象是否是关联数组?
- 18. 我们可以使用范围数组来调用角度函数吗?
- 19. PySpark可以使用numpy数组吗?
- 20. 可以和数组一起使用吗?
- 21. 对数组使用UPDATE - 有可能吗?
- 22. 我们可以使用通用列表而不是对象数组C#
- 23. 测试numpy数组是否对称?
- 24. 我可以用JS数组来做这个吗?
- 25. 如何将对象数组转换为一个对象我可以使用obj.find()
- 26. 我可以在javascript的函数参数中使用对象吗?
- 27. 使用Python单元测试来测试数组中的结果
- 28. 我可以使用JSON数组作为小型数据库吗?
- 29. 使用@each可以观察数组中的数组吗?
- 30. NSPredicates是否可以用数组中的值替换数组中的对象?
您也可以使用来自“obj instanceof Array”的布尔返回值,但是与您的版本一样,它只对同一个窗口范围的数组返回true。 – kennebec 2015-02-12 01:03:52
你有没有读过关于这个问题的其他答案? http://blog.niftysnippets.org/2010/09/say-what.html – Bergi 2015-04-01 20:08:27
@Bergi是的,当我问这个问题时,我有兴趣了解更多关于'obj.constructor === Class'的知识。 – 2015-04-01 20:14:27