本文同步發表於隨性筆記
寫了這麼久的JS,你還在物件之前的時代嗎?只有資料、函式可以用,破破的抽象化,不會難以維護?儘管JS起初並不以物件導向設計,但透過原形鏈設計,其仍然可以具有好維護的物件導向特色。本系列從最基礎的this,深入ES6之後的class。
系列目錄
- 第0天 - Oh...開始了......
- 第1天 - this & bind: 你不能不知道的
- 第2天 - new & factory: 如何建立一個新物件
- 第3天 - Function & Object: 關於Prototype Chain繼承
- 第4天 - Class & constructor: 吃語法糖別噎到
- 第5天 - getter & setter: 屬性描述器
- 第6天 - yield & yield*: 生成器
- 第7天 - Symbol & Proxy: 以前沒有的
- 第8天 - Closure & Private:番外短篇 隱私成員
各章節簡介
(第1天) this & bind: 你不能不知道的
物件導向必不可少的,就是如何引用參考自己。
要是自己的錢包都拿不出來,你要怎買個冰棒?
(第2天) new & factory: 如何建立一個新物件
既然是要來物件導向,當然要先來學怎麼建立物件。本節帶你看看如何建立一個新的物件。
(第3天) Function & Object: 關於Prototype Chain繼承
在class
之前,必須了解的prototype chain。
JavaScript 是個沒有實做 class 關鍵字的動態語言,所以會對那些基於類別(class-based)語言(如 Java 或 C++)背景出身的開發者來說會有點困惑。(在 ES2015 有提供 class 關鍵字,但那只是個語法糖,JavaScript 仍然是基於原型(prototype-based)的語言)。
(第4天) Class & constructor: 吃語法糖別噎到
關於class
這個關鍵字,JS將其作為保留字好一段時間,直至ES6標準的制定,再經過瀏覽器漫長的實做,至今才有class
的語法糖可以使用。
(第5天) getter & setter: 屬性描述器
有了物件然後呢?
來說說關於成員(field/attribute/member)背後的屬性。
(第6天) yield & yield\: 生成器
生成器(generator),這個類型的建立與使用,和普通的JS類別有些不同,來看看吧!
(第7天) Symbol & Proxy: 以前沒有的
最後一天,來看兩個特別的類別--Symbol
和Proxy
。