接下來的主題我們要來了解另一個 JavaScript 的重要觀念,它能增進我們 JavaScript 的開發能力,但它也是造成許多人混亂的主題,因為 JavaScript 在這部分和其他的程式語言有很大的不同。我們就來討論 JavaScript 的物件導向和原型繼承吧 !
當我們談到 JavaScript 的物件導向時,我們主要是在關注物件的建立,因為這部份很容易搞不清楚,所以我們要先從繼承講起。
接下來的主題我們要來了解另一個 JavaScript 的重要觀念,它能增進我們 JavaScript 的開發能力,但它也是造成許多人混亂的主題,因為 JavaScript 在這部分和其他的程式語言有很大的不同。我們就來討論 JavaScript 的物件導向和原型繼承吧 !
當我們談到 JavaScript 的物件導向時,我們主要是在關注物件的建立,因為這部份很容易搞不清楚,所以我們要先從繼承講起。
在討論完 first-class function 和其他的 JavaScript 特色後,我們要來討論函式程式設計 (Functional Programming)。
雖然 JavaScript 聽起來和 Java 有關,但它其實和函式程式語言比較有關,像是 Lisp, Scheme, ML,這些語言有 first-class function 的特色,function 就是物件,可以作為參數傳入,可以從 function 中回傳,所以有 first-class function 的 JavaScript,代表可以實作函式程式設計,能將程式碼都當成 function。
Underscore.js,是非常有名的 JavaScript 函式庫,可以幫助我們處理陣列和物件,還展示如何做出那些功能,這和我們之後要講的東西有關。
我們稱這為開源教育 (open source education),有免費、大量的 JavaScript 函式庫的程式碼供我們使用,這些被廣泛使用的框架和函式庫的原始碼都非常不錯,可以從中學習原始碼,不過還是得先了解 JavaScript 的進階概念才行。
在 JavaScript 中,Closure 是非常實用的,今天我們就來談談如何應用 Closure。
先前我們有介紹過一些 JavaScript 程式語言的功能,像是讓 function 在不同情形下被不同預設參數呼叫 (在 Function Overloading 的章節中),而在這章節我們要展示如何用 Closure 寫出更有彈性的程式。