我對JavaScript中的Array.from()有點困惑。我知道/認爲將類似數組的值轉換爲數組,但爲什麼,如果數組是一個對象,那麼在我們可以使用它之前,我們不必使用'new'關鍵字來實例化它嗎?在JS中使用Array.from()
回答
Array
是一個函數,函數是對象,對象有屬性。 from
只是該對象的一個屬性。 Array
是一個函數,而可以調用可以調用是無關緊要的。
實施例:
function foo() {}
foo.bar = function() {
console.log('hi');
}
foo.bar(); // hi
據推測添加from
作爲屬性Array
的主要原因是爲了它命名空間(而不是創建另一個全局函數)。
謝謝。有一件事很快,可能是一個愚蠢的問題 - 可能是 - 但是如果Array是一個帶有方法的靜態函數,那麼這是否意味着我聲明的Arrays也有可用的.from()方法,因爲它們是類型的陣列?即使有這樣的方法在陣列上沒用也是...我有什麼意義嗎? – Joshua
No.數組「繼承」Array.prototype中定義的所有方法,而不是Array。考慮'Array.from'作爲一個類方法。它是在班上定義的,而不是在其實例上定義的。就像在我上面的例子中一樣,如果你做了'var f = new foo();','f'就沒有'bar'方法。要了解更多關於函數和原型的信息,請查看http://felix-kling.de/jsbasics/#/10。 –
第二個原因可能是允許子類化:-) – Bergi
JavaScript有幾種集合類型(HTMLCollection,NodeList,FileList,'arguments'等)。後者是包含傳遞給函數的所有參數的變量。
成像您有一個函數,需要使用普通數組傳遞數據 - 在這種情況下,Array.from(..)對於轉換任何其他集合類型非常有用。
- 1. Array.from jQuery中
- 2. typecript IE11中的Array.from
- 3. Array.from()vs spread syntax
- 4. Array.from vs Array.prototype.map
- 5. Array.from vs新集
- 6. babel:polyfill Array.from for IE11 support
- 7. Internet Explorer上的Array.from
- 8. 原型JS源代碼是什麼意思? Array.from = $ A ... Hash.from = $ H;
- 9. 什麼是使babel6支持Array.from在webpack中的最佳方式?
- 10. Array.from TypeError:0不是函數
- 11. Javascript Array.from(...).for for each assignment?
- 12. 在變量JS中使用onclick =「myFunction()」JS
- 13. 在webdriver js中使用會話js
- 14. 在JS App中使用ADAL JS Lib
- 15. 使用datepickerplus在Ext JS中
- 16. 在Ext JS中使用LocalStorage
- 17. 在JS中使用Json
- 18. 在js-csp中使用transducercers.js
- 19. 在Angular2中使用scanner-js
- 20. 在js中使用addEventListener()
- 21. 在把手中使用JS
- 22. 在Meteor JS中使用Collcetions?
- 23. 在Angular JS中使用iFrame
- 24. 使用JS在HTML中創建可摺疊行使用JS
- 25. 使用JS在新窗口中打開HREF使用JS
- 26. 使用D3.JS訪問JS對象中的'值'使用D3.JS
- 27. Array.from(..)內的原型事件監聽不起作用
- 28. 如何在React js中設置道具使用引用js
- 29. 在html.erb中使用js函數中的js函數
- 30. 在螞蟻中使用js在HTML中使用標籤搜索
'from'不是填充實例化數組的實例方法,而是'Array'類本身的靜態方法。 – Bergi