javaScript 新方向 (3)
我們建立一個物件 sam ,讓後呼叫 Object.freeze 將該物件變為不可變物件。

這樣我們建立一個物件時,如果是在之前物件的基礎上進行擴充套件,也可以理解繼承,然後修改那些標識不同物件的屬性值來重新獲取定義一個物件。類似在這裡我們 olderSam 的 age 增加 1,看上去沒有什麼問題,通常我們也是這麼做,但是這樣做的就會在 olderSam 和 sam 之間產生耦合度。


設想我們為物件新增 sam 一個新的 twitter 的屬性,這時樣還需修改 olderSam, 新增該屬性以保持一致,這就是我們的問題。

然後不手動地為 olderSam 新增 twitter 屬性,是否無法自動更新新增該屬性以繼承 sam 的 twitter 屬性的。

這樣我們就需要在 sam 和 olderSam 兩個物件上做重複的工作。這是違反我們寫優雅程式碼的原則的。

解構我們通常組裝一個物件,根據屬性來組裝物件,類似安裝圖紙來組裝一個設配,那麼解構就類似安裝圖紙將現有的物件進行一一分解。我們可以通過解構的特性來輕鬆地實現我們想要的效果。

我們可以定義一個方法,接受一個名稱作為引數,輸出 hello ... 呵呵。


在 kotlin 這樣現代新興語言基本都支援引數預設值的特性,在 javascript 中 es6 中同樣也支這個新的特性。我們可以在預設引數值中使用模板字面量,這裡通過$佔位符解析的變數。

我們可以在引數變數中使用解析器。

如果我們輸入 null ,會將 null 作為值輸入顯示。


但是如果傳入 undefined 作為引數值,就會使用預設值而認為您沒有傳入引數值。
