雜項

hasOwnProperty方法

回傳物件屬性的"鍵"是否存在的判斷:

const obj ={}
obj.prop = 'exists'

console.log(obj.hasOwnProperty('prop') )
console.log(obj.hasOwnProperty('toString')) // false

Object.create

  • 用Object.create建立物件,在原型中比new正統

  • Object.create與new運算符相似,差別在Object.create不會執行建構函式

const PlayerPrototype = {
  name: '',
  toString() {
    return 'Name: '+ this.name
  }
}

const inori = Object.create(PlayerPrototype)
inori.name = 'iNori'
console.log(inori.toString())

模組(Module)樣式

  • 這個樣式使用了IIFE

  • 用來模擬物件中的私有成員上(私有屬性與方法)與公開成員

柯里化(Currying)與部份應用(Partial application)

  • 部份應用: 代表一個函式其中有部份的傳入值(一個或多個)被傳入,然後回傳一個已經有部份傳入值的函式。(部份帶入)

  • 柯里:把原本多個傳入參數的函式,轉變為一次只傳入一個參數的函式,可以連續呼叫使用。(逐一帶入)

部份應用(Partial application)

柯里化

展開運算符與其餘運算符

  • 兩者符號相同都是...

展開運算符(Spread Operator)用於展開陣列

其餘運算符(Rest Operator)用在二個地方。

一個是傳入參數定義中。另一種情況是用在解構賦值時。

函式傳入參數定義中也可以使用解構賦值

generator

  • 可中斷的函數,且可恢復執行

  • 每次執行一個區間的代碼,分段執行,且異步調用

  • 遇到yield就停止,傳回執行結果

  • *表示此為generator

Last updated

Was this helpful?