有些Object.values
和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);
答案 0 :(得分:1)
因为一切都是JavaScript中的对象。如果在对象的原型中添加方法,它将被继承为 everything ,因此它不能(或不应该,因为这样会隐藏原始方法)用作自定义名称方法。这意味着如果Object.prototype
被许多方法污染,将使属性名称的选择更加困难:
1..keys() // Did you expect this to work?