當JS建構函式內有return語句時

2021-09-11 04:23:08 字數 396 閱讀 6183

今天才發現當js建構函式內又return語句時會和沒有return語句不同。

以上可以看出來如果返回型別是引用型別,那麼例項化出的物件將會被返回的物件取代,也就是[1,2]。但如果返回的是值型別那麼並沒有什麼影響。

呼叫new foo()時有以下四步操作。

1.首先,新建乙個空物件var obj =

2.之後obj的__proto__指向建構函式的原型物件 obj._proto_ = foo.prototype

3.將建構函式的this繫結到obj上,並執行建構函式  foo.call( obj )

4.返回obj物件,將其作為new出的例項

js new建構函式中的return

預設情況下,沒有return的函式的返回值為undefined 即沒有定義返回值 如果定義了return,則返回指定物件。但是建構函式比較t特殊,new建構函式在沒有return的情況下預設返回新建立的物件。在有return的情況下,需要分為兩個情況考慮 vara functions var b n...

js 函式的跳出 return

doctype html en utf 8 viewport content width device width,initial scale 1.0 document title head function abc return 222 var a abc 如果不賦值 就會丟失結果 返回乙個函式 ...

js 函式中的 return 匿名函式

今天乙個剛學js的朋友給了我一段 問為什麼方法不執行,如下 如下 function makefunc x alert makefunc 0 結果是 function 不是0 不是指令碼寫錯了,只是沒搞懂return,從當前函式退出,並從那個函式返回乙個值。如果返回的是乙個函式,那麼返回的也是函式本身...