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 功能。
以上是JavaScript 的 new 关键字真的那么危险吗?的详细内容。更多信息请关注PHP中文网其他相关文章!