JavaScript 的本質可以 總結如下:
bind()
進行部分應用、內建陣列的 map()
和 reduce()
等)和物件導向程式設計(可變狀態、物件、繼承等)。
一方面,JavaScript 有 一些怪癖和遺漏的功能(例如,它沒有區塊範圍變數、沒有內建模組,而且不支援子類別化)。因此,在其他語言中學習語言功能時,您會在 JavaScript 中學習模式和解決方法。另一方面,JavaScript 包含非正統功能(例如原型繼承和物件屬性)。這些功能也必須學習,但它們更像是功能,而不是錯誤。
請注意,JavaScript 引擎已經變得相當聰明,而且會在幕後修正一些怪癖。例如
但 JavaScript 也有許多 優雅的部分。Brendan Eich 最喜歡的是:[3]
最後兩項,物件文字和陣列文字,讓您可以從物件開始,然後再引入抽象(例如建構函式,JavaScript 類似於類別)。它們也啟用了 JSON(請參閱 第 22 章)。
請注意,優雅的部分有助於您解決怪癖。例如,它們允許您實作區塊範圍、模組和繼承 API,所有都在語言中。
JavaScript 受到多種程式語言的影響(如 圖 3-1 所示)
Date
建構函式(這是 java.util.Date
的移植)。
function
來自 AWK。
onclick
。