深入探討 Class 與 Prototype Chain
ECMAScript 2015 雖然支援了 class 語法,但本質上仍是使用 Prototype 實作,本文深入探討其背後黑魔法。
ECMAScript 2015 雖然支援了 class 語法,但本質上仍是使用 Prototype 實作,本文深入探討其背後黑魔法。
ECMAScript 5 並沒有 Class,雖然仍然可以使用 new 建立 Object,但必須透過 Constructor Function,但究竟 Constructor Function 有什麼黑魔法,竟然可以使用 new 建立 Object 呢 ?
Object 有 3 個非常像的 Property:__proto__、prototype 與 [[prototype]],徹底了解有助於我們看清 Prototype 本質。
Object.create() 從 ECMAScript 5.1 就開始提供,與 new 不同的是 Object.create() 讓我們可直接根據 Prototype 建立 Object,事實上我們也可土炮實作。
實務上我們常需判斷 Array 是否 任意 資料符合某條件,若存在則傳回 true,若不存在則傳回 false,ECMAScript 提供了 some() 可判斷。
以前 Form Validation 要完全使用 JavaScript,HTML 5 將常用檢查功能內建,可大幅減少 JavaScript 長度。
有些網頁會在右側出現小視窗,事實上這是 HTML 5 所提供 Notification,由 Browser 所提供,可直接使用。
實務上我們常需判斷 Array 是否 全部 符合某條件,若存在則傳回 true,若不存在則傳回 false,ECMAScript 提供了 every() 可判斷。
margin: auto 為最簡單的水平置中,但卻只能用於有指定寬度的 Block,為什麼不能使用在 Inline 與 Inline-block 呢 ?
UL 與 LI 預設會垂直顯示,但實務上卻常常使用 UL 與 LI 製作水平 Menu,可使用 Flexbox 或 display: inline 使 UL 與 LI 水平顯示。