使用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