[JavaScriptWeird]No.48 觀念小叮嚀:內建的函式建構子(二)

前言

接續前篇,另一個危險小叮嚀時間,我們已經討論過內建的函式建構子,它們相當的便利簡潔,但也很危險。

為什麼危險呢?透過例子來了解:

看出問題在哪邊了嗎?

問題再於

  • 如果使用內建的函式建構子來設定值,這時候 a 是數值 3 ,而 b 是物件。
  • 而雙等號運算子知道兩者的型別,試著將兩者型別變成一樣

但實際上兩者是完全不同的東西,三等號運算子回傳的結果才是正確的。

內建的函式建構子所建立的純值並不是真正的純值,因此如果要建立純值就使用實體語法建立即可,除非我們很確定須要用上函式建構子建立。

前面提到 new 後面接著的是一般的函式,所以有沒有 new 的差距相當大,例如沒有 new 的情況,我們可以使用這些內建函式來轉換型別,此時的 c 就是一個真正的純值。

0%