在 ES6/ES7 中,新增了一些便于对象操作的运算符,这些运算符可以简化对象属性的访问、添加、删除以及枚举等操作。本文就来详细介绍这些增加的运算符。
对象属性扩展运算符(...)
在 ES6 中,对象属性扩展运算符可以将一个对象的属性复制到另一个对象中。例如:
const obj = { a: 1, b: 2 }; const newObj = { ...obj, c: 3 }; console.log(newObj); // {a: 1, b: 2, c: 3}
此外,对象属性扩展运算符还可以用于提取对象中的部分属性。例如:
const { a, b, ...rest } = { a: 1, b: 2, c: 3, d: 4 }; console.log(a); // 1 console.log(b); // 2 console.log(rest); // { c: 3, d: 4 }
Object.assign 方法
Object.assign 方法可以将多个对象合并为一个对象。其中,后面的对象会覆盖前面的对象中重复的属性。例如:
const obj1 = { a: 1 }; const obj2 = { b: 2 }; const newObj = Object.assign({}, obj1, obj2); console.log(newObj); // { a: 1, b: 2 }
对象新增运算符
ES7 中新增了三种对象操作运算符:Object.getOwnPropertyDescriptors
、Object.values
、Object.entries
。
Object.getOwnPropertyDescriptors
Object.getOwnPropertyDescriptors
方法可以取到一个对象的所有属性描述符(包括数据描述符和访问器描述符)。它的语法如下:
Object.getOwnPropertyDescriptors(obj)
其中,obj
是要获取属性描述符的对象。
-- -------------------- ---- ------- ----- --- - - -- -- --- --- - ------ -- - -- --------------------------------------------------- --- - -- - ------ -- --------- ----- ----------- ----- ------------- ---- -- -- - ---- ---------- --- --- ---- ---------- ----------- ----- ------------- ---- - - --
Object.values
Object.values
方法可以取到一个对象的所有值。它的语法如下:
Object.values(obj);
其中,obj
是要获取值的对象。
const obj = { a: 1, b: 2, c: 3 }; console.log(Object.values(obj)); // [1, 2, 3]
Object.entries
Object.entries
方法可以取到一个对象的所有键值对。它的语法如下:
Object.entries(obj)
其中,obj
是要获取键值对的对象。
const obj = { a: 1, b: 2, c: 3 }; console.log(Object.entries(obj)); // [['a', 1], ['b', 2], ['c', 3]]
总结
本文介绍了 ES6/ES7 中新增的对象操作运算符和方法:对象属性扩展运算符、Object.assign 方法、Object.getOwnPropertyDescriptors、Object.values、Object.entries。这些运算符和方法可以方便的进行对象属性的添加、删除、修改和枚举等操作。在实际开发中,可以根据需要使用这些运算符和方法,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651fdd0b95b1f8cacd767f14