ECMAScript 之建立 Object
ECMAScript 由 Object 與 Function 構成,傳統 OOP 的 Object 都必須由 Class 而來,但 ECMAScript 的 Object 卻有多種建立方式。
ECMAScript 由 Object 與 Function 構成,傳統 OOP 的 Object 都必須由 Class 而來,但 ECMAScript 的 Object 卻有多種建立方式。
Object.keys() 與 for...in 的差異在於 Object.keys() 只能顯示目前 Object 的 Property,而 for...in 會連同 Prototype 的 Property 一併顯示。若 for...in 搭配 Constructor Function 或 Object.create() 時一切正常,但搭配 class 時,就無法顯示 Prototype 的 Property 了,為什麼會這樣呢 ?
ECMAScript 2015 除了支援一般 OOP 都有的 Class Declaration 外,還繼承了 ECMAScript 傳統,另外提供了 Class Expression,這使得根據條件動態建立 Class 成為可能。
Class 雖然是 Constructor Function 的 Syntatic Sugar,但與真正 Constructor Function 仍有不少差異,本文深入探討兩者差異。
Class 是 OOP 必備觀念,ECMAScript 2015 總算支援 Class,讓很多人倍感親切,但事實上 ECMAScript 的 Class 並非如你想得這麼單純。
ECMAScript 的 Dynamic Type 為其一大特性,讓我們能在 Runtime 對 Object 新增 Property;Function 亦為 Object,因此也能對 Function 新增 Property 取代 Global Variable。
對 Function 傳遞 Argument 是天天都會用到功能,ECMAScript 對 Argument 傳遞語法雖然精簡,但有些雷一不小心就會踩到,因此特別提出來討論。
undefined 是 ECMAScript 很特殊的存在,實務上有多種判斷方式。
ECMAScript 提供了 splice() 刪除 Array 中的 Element,但必須先提供要刪除的 Index;但若要刪除的是 Object,由於 Object 的比較是 Reference,所以實踐方式比較不一樣。
清空 Array 也是實務上常遇到功能,ECMAScript 並沒有自帶 clear() Method,必須使用其他方式完成。