扩展对象的功能性

发布于 2024-11-27 04:07:02 字数 843 浏览 5 评论 0

ES6 的其中一个设计目标是:不再创建新的全局函数,也不在 Object.prototype 创建新的(所有对象都能继承的)方法。但是 Object 上还是增加了一些静态的方法。

  • 对象字面量语法扩展:每天都在用,应该成为日常再也不要回去了
  • 对象属性枚举顺序:ES5 中未定义,由 JavaScript 引擎厂商自定实现,引起了混乱。ES6 中做了严格规定,这会影响一些方法获取对象属性的结果。但仍然无法保证对象属性的次序按你希望的方式进行。规范是:所有数字键升序排序 -> 所有字符串键按加入次序排在后面 -> 所有 Symbol 键按加入次序再排在后面
  • super 关键字:对于获取基类中的同名属性有帮助。其他动态引用和多重继承的场景太复杂用不到
  • 可计算属性名:据经验,一般是在 reduce 的时候用到。做一般业务时不推荐过度使用,其动态特性类似于反射,不好追溯
  • [无场景] Object.is :主要用来弥补 === 在处理 +0 === -03 === NaN 上的错误处理。如果你的代码不需要处理这两个特殊情况,一律用 === 就够了
  • [无场景] Object.setPrototypeOf :太过动态了吧,这样玩不会出事吗
  • [弃用] Object.assign :有副作用,应该一律用对象解构来替代
  • [弃用] 对象方法的简写语法:在对象上定义方法,一般都用类。这个特性我觉得不应该有使用场景

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

文章
评论
25 人气
更多

推荐作者

kaipeng

文章 0 评论 0

吐个泡泡

文章 0 评论 0

沧桑㈠

文章 0 评论 0

御宅男

文章 0 评论 0

泪眸﹌

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文