JavaScript 的「new」關鍵字真的有害嗎?
在良好 JavaScript 實踐的持續討論中,Douglas Crockford 斷言「new」關鍵字存在風險引發爭議。不過,在得出明確的結論之前,有必要深入研究其優缺點。
使用「new」的優點
使用「new」的缺點
function foo() { if (!(this instanceof foo)) { return new foo(); } // Constructor logic follows... }
平衡的視角
重要的是要強調,Crockford 的立場不應該被盲目接受。有時「新」的好處超過了潛在的缺點。透過實現上述防禦性程式設計機制,開發人員可以在不影響程式碼穩健性的情況下利用「新」的力量。
ES5/ES6 注意事項
在 ES5 中,嚴格模式下禁止在防禦性檢查中使用「arguments.callee」。 ES6 在類別中引入了「new」的安全實現,消除了外部檢查的需要。此外,「new.target」也提供了未使用「new」呼叫的建構函式的檢查。
結論
雖然應注意Crockford 的擔憂,但「new」 " 關鍵字本身並不是有害的。透過採用合理的編碼實踐並了解其複雜性,開發人員可以利用「新」的優勢,同時減少潛在的陷阱。
以上是JavaScript 的 new 關鍵字真的那麼危險嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!