javascript - 为什么 Object 原型中没有与 Object 相关的方法?
问题描述
有像Object.values
fo这样的方法Object.keys
,但是为什么这些方法不在对象的原型中呢?这有充分的理由吗?
例子:
const user = { name: 'John', role: 'admin' };
const keys = user.keys() // instead of Object.keys(user);
const values = user.values() // instead of Object.values(user);
解决方案
因为在 JavaScript 中一切都是对象。如果将方法添加到对象的原型,它将被继承到一切,它不能(或不应该,因为它隐藏了原始方法)用作自定义方法的名称。这意味着如果它Object.prototype
会被很多方法污染,它将使属性名称的选择变得更加困难:
1..keys() // Did you expect this to work?
推荐阅读
- azure - Azure IoT 远程监控 Web UI 未在本地计算机上启动 - 未经授权
- php - 如何通过 HTML 表单传递 MediaRecorder 录制的视频
- sql - 重新构建查询以使用具有相似数据但之间没有每个日期的表
- ios - SwiftUI 中带循环的动态按钮
- arrays - 我想将 id 值存储在变量 ex $id=76 中
- ruby-on-rails - 在 ActiveRecord 中寻找常用词/短语
- json - 我必须解析动态 json
- asp.net-mvc-4 - 如何在 Asp.Net MVC5 中启用 CORS
- laravel - 在 vuex 操作中调用时未定义路由器
- java - 如何在android中使用bitcoinj(walletappkit)从助记符创建比特币钱包