JavaScript 'new' 关键字有害吗?
围绕 JavaScript 中 'new' 关键字的争论由以下人士表达的担忧引发:安全编码实践的支持者。然而,使用“new”的好处大于潜在的风险。
使用“new”的优点
使用的缺点'new'
缓解策略
这个缺点可以毫不费力补救措施:
function foo() { if (!(this instanceof foo)) { return new foo(); } // Constructor logic follows... }
通过包含此代码,您可以防止意外误用并保留“新”的好处。
通用健全性检查
为了获得更高的安全性,请考虑断言或运行时例外:
if (!(this instanceof arguments.callee)) { throw new Error("Constructor called as a function"); }
注意:在 ES5 严格模式下不推荐使用 argument.callee。
ES6 和增强安全性
结论
只要采取适当的预防措施,“new”仍然是 JavaScript 中不可或缺的工具。它提供面向对象的继承、性能优势和错误缓解。通过实施安全检查,您可以在不影响代码质量或可靠性的情况下利用“新”的力量。
以上是尽管存在潜在的陷阱,JavaScript'new”关键字是否必要?的详细内容。更多信息请关注PHP中文网其他相关文章!