前言
接續前篇,另一個危險小叮嚀時間,我們已經討論過內建的函式建構子,它們相當的便利簡潔,但也很危險。
為什麼危險呢?透過例子來了解:
看出問題在哪邊了嗎?
問題再於
- 如果使用內建的函式建構子來設定值,這時候
a
是數值 3 ,而b
是物件。 - 而雙等號運算子知道兩者的型別,試著將兩者型別變成一樣
但實際上兩者是完全不同的東西,三等號運算子回傳的結果才是正確的。
內建的函式建構子所建立的純值並不是真正的純值,因此如果要建立純值就使用實體語法建立即可,除非我們很確定須要用上函式建構子建立。
前面提到 new
後面接著的是一般的函式,所以有沒有 new
的差距相當大,例如沒有 new
的情況,我們可以使用這些內建函式來轉換型別,此時的 c
就是一個真正的純值。