首頁  >  文章  >  web前端  >  JavaScript:new 一個函數和直接呼叫函數的區別分析_javascript技巧

JavaScript:new 一個函數和直接呼叫函數的區別分析_javascript技巧

WBOY
WBOY原創
2016-05-16 17:29:191025瀏覽
複製程式碼


程式碼如下:


function Test() {
this 㟎>
. ;
  return function() { return true; }
}
複製代碼


程式碼如下:


function Test() {
  this.name = 'Test';
  return 'Test';
}
  return 'Test';
} var fnT = Test(); var newT = new Test();   顯然,fnT 是字串Test,那newT 呢?呵呵,是不是被第一個範例迷惑了?其實,此時 newT 就是一個 Test 物件——有一個名為 name 的屬性,其值為字串 Test。   透過上面兩段程式碼,我們可以得到一個猜測,如果函數傳回值為常規意義上的值類型(Number、String、Boolean)時,new 函數將會傳回一個該函數的實例對象,而如果函數傳回一個參考類型(Object、Array、Function),則new 函數與直接呼叫函數產生的結果等同。透過在 Test 函數中傳回不同類型的值進行測試,可以證實這一點。    分清這一點,其實還蠻重要的,至少在看一些物件導向的框架類別函式庫程式碼時,會少一點疑惑。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn