Javascript new with apply

  js 函式可以透過一些方式與公用函式來動態呼叫,並用陣列動態丟入參數,但是透過公用函式可以呼叫參數那不就失去能力動態呼叫 new 建構子了嗎?因為語法上有衝突~如同下面範例,第二行,這樣就已經變成呼叫函式了,如果變換一下用第三種方式呼叫,乍看好像結果會一樣,但是如果建構子內有修改全域變數可能會造成一些後遺症,那要如何用陣列丟參數的情況下產生物件勒勒勒~~

  // call function by array
  func.apply(this, [1, 2]);
  // new object by array ?
  new func.apply(this, [1, 2]);
  // maybe has side effect .. because the func be called twice.
  func.apply(new func(), [1, 2]);

Continue reading…