['a', 'b', 'c']
数组引用对象o
键的项目是什么?或者他们是全新的字符串实例?
let o = {a: 10, b: 20, c: 30};
let keys = Object.keys(o); // ['a', 'b', 'c']
答案 0 :(得分:1)
您可以阅读Object.keys
方法here:
Object.keys()方法返回给定对象自己的数组 可枚举的属性,与a提供的顺序相同 for ... in循环(不同之处在于for-in循环枚举 原型链中的属性也是如此。
所以你提问, Object.keys是通过引用复制属性还是创建一个新属性?,与此方法的作用无关。此方法不会复制属性。如上所述,返回一个数组包含对象的自身可枚举属性的名称。
答案 1 :(得分:1)
如果它们是引用,则在keys
数组中更改其中一个也会导致更改对象属性名称。正如你在这里看到的情况并非如此。
let o = {a: 10, b: 20, c: 30};
let keys = Object.keys(o); // ['a', 'b', 'c']
keys[0]='d';
let keys2 = Object.keys(o);
console.log(keys2);