JavaScript 的「new」關鍵字有害嗎?
JavaScript 的「new」關鍵字引發了爭議,有些人因為認為它的使用而反對使用它風險。然而,仔細檢查就會發現使用「new」的許多優點。
使用「new」的優點
缺點"new"
減輕缺點
為了解決這個缺點,可以為每個函數添加一個簡單的檢查:
function foo() { // If "new" is omitted, silently correct the problem if (!(this instanceof foo)) { return new foo(); } // Constructor logic follows... }
這可確保物件始終正確構造,消除靜默失敗的風險。
面向未來
ES5 引入了嚴格模式,該模式不允許某些構造,包括「arguments.callee」。因此,上述檢查可能需要在嚴格模式下進行修改:
function foo() { // Check for "new" using new.target (ES6) if (!(new.target)) { throw new Error("Constructor called as a function"); } // Constructor logic follows... }
結論
雖然「new」關鍵字有其警告,但它仍然是一個JavaScript 中的重要工具。透過了解其優勢並降低其潛在風險,開發人員可以安全地利用「新」的力量進行物件創建和程式碼重複使用。
以上是JavaScript 的「new」關鍵字是利大於弊嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!