javascript prototype

JavaScript ? Prototype ?

定義:能存放屬性的就是物件。

  函式也是一個物件,物件也是物件,一個物件實體會有他的自己的屬性與繼承的屬性,可以檢查其 __proto__ 來找到他是被什麼函式生成的,該函式的 prototype 將會繼承到該物件上。

  用來建構物件的建構子是一個函式,而函式也是物件,那最最最開始的函式是怎麼被建構出來呢? Object.prototype  在最開始時就存著一個物件,這個物件與其屬性就是根本。
Continue reading…

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…