深入探討 Currying
不只 OOP 有 Design Pattern,事實上 FP 也有不少 Pattern,而 Currying 算 FP 最基礎、使用最多的 Pattern。ECMAScript 雖然沒有直接支援,但因為有 First-class Function 、Lexical Scope,使得 Currying 在 ECMAScript 中使用成為可能。
不只 OOP 有 Design Pattern,事實上 FP 也有不少 Pattern,而 Currying 算 FP 最基礎、使用最多的 Pattern。ECMAScript 雖然沒有直接支援,但因為有 First-class Function 、Lexical Scope,使得 Currying 在 ECMAScript 中使用成為可能。
ECMAScript 2015 支援 Class 之後,很多人認為總算達到 OOP 該有高度,事實上 ECMAScript 仍有其他方式亦可完成所有 Class 能做事情。
傳統總認為 CSS 只能處理視覺部分,Index 該由 JavaScript 處理,但透過 CSS 的 counter() 也可產生 Index。
隨著 iOS 13 正式支援 Dark Mode 後,也宣告 Web 在 Mobile Device 不再只有白底黑字,支援 Dark Mode 成為無法逃避的課題,本文記錄這次將 點燈坊 支援 Dark Mode 的一些調教心得。
一個常見的需求,由於不算視覺部分,直覺要使用 JavaScript 處理,其實 CSS 就能解決。
CSS 允許我們將重複 Property 抽出成獨立 Class,然後 HTML Element 再以 Class Composition 完成我們要的視覺效果。
若要在 String 之後根據指定長度補 0,ECMAScript 提供了 padEnd() 。
若要在 String 之前根據指定長度補 0,ECMAScript 提供了 padStart() 。
ECMAScript 2015 支援了 extends,至此 ECMAScript 能輕鬆實踐 Inheritance,但事實上也能由 Prototype Chain 實現。
ECMAScript 2015 雖然支援了 class 語法,但本質上仍是使用 Prototype 實作,本文深入探討其背後黑魔法。