2016年2月7日 星期日

"Learning JavaScript Design Patterns" 讀書筆記

*** 重要

**** 函數

***** 函數是物件
****** 可在執行期動態建立
****** 可做為變數值,類似C中的指標/參考, 但又具有屬性/方法
******* 記憶模式 Momento
***** 具有特定的作用範圍
****** hoisting對以var宣告的函數,具有var的作用特性
****** 匿名函式:不污染命名空間
***** 靜態方法vs原型方法;類別呼叫vs物件呼叫

**** 模組模式

***** namespace
以樹狀結構組織功能,捨棄java中利用實體目錄的對應方式
***** 宣告相依性
明確限定範圍、使用區域變數以加速
***** private+public
函數中var宣告的成員均為private,必需以附加到this(或任一全域變數)的函數讓外界存取
***** 匿名立即函式/Closure?
提供private作用域,傳入全域物件,回傳物件(或建構函式)

**** 原型 prototype

***** Function.prototype.bind()--改變作用域
***** 只要是可重複利用的成員 ,例如方法 ,都應該放進原型裏

**** new的作用

***** 產生空白物件,並命名為 this,最後隱含回傳

**** 物件

***** = mutable hash 可改變的雜湊表
***** 成員可用 value = object[key]存取
***** singleton / 自我定義建構式

*** 次要

hoisting: var宣告自動被提前到函式頂端
"use strict": 使this不再自動指向全域物件,減少函數不是為產生物件而撰寫時所造成的意外

沒有留言:

張貼留言