首页 > web前端 > js教程 > JavaScript 的'new”关键字是利大于弊吗?

JavaScript 的'new”关键字是利大于弊吗?

Mary-Kate Olsen
发布: 2024-12-13 07:25:13
原创
481 人浏览过

Is JavaScript's `new` Keyword More Helpful Than Harmful?

JavaScript 的“new”关键字有害吗?

JavaScript 的“new”关键字引发了争议,一些人因认为它的使用而反对使用它风险。然而,仔细检查就会发现使用“new”的许多优点。

使用“new”的优点

  • 原型继承: “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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板