new一个对象的过程,js es6新特性

时刻小站 188

引言

ES6对Javascript进行了扩展,其中出现了大量的新特性,我们可以有效的利用新特性来提升我们的代码质量和开发效率,本文将介绍如何通过扩展运算符来简化我们的代码。

向对象添加属性

克隆对象,同时向(浅)克隆对象添加附加属性,如下代码:

const user = { id: 10, name: Tom} const userWithPass = { ...user, password: Password! } user //=> { id: 10, name: Tom } userWithPass //=> { id: 10, name: Tom, password: Password! }

在这个例子里面user克隆成userWithPass,并且userWithPass对象添加了password属性,代码简洁高效。

合并对象

我们通过举个例子来说明是如何操作的

const part1 = { id: 10, name: Howard Moon } const part2 = { id: 11, password: Password! } const user1 = { ...part1, ...part2 } //=> { id: 10, name: Howard Moon, password: Password! }

在这个例子里面我们将part1和part2合并成一个对象user1,也可以通过以下方式合并对象

const partial = { id: 100, name: Howard Moon } const user = { ...partial, id: 100, password: Password! } user //=> { id: 100, name: Howard Moon, password: Password! }

删除对象的属性

可以结合REST运算符使用析构来删除属性。

onst noPassword = ({ password, ...rest }) => rest const user = { id: 100, name: Howard Moon, password: Password! } noPassword(user) //=> { id: 100, name: Howard moon }

动态删除属性

可以利用对象属性名,然后removeProperty传递属性名称将属性删除

const user1 = { id: 100, name: Howard Moon, password: Password! } const removeProperty = prop => ({ [prop]: _, ...rest }) => rest // ---- ------ // / // dynamic destructuring const removePassword = removeProperty(password) const removeId = removeProperty(id) removePassword(user1) //=> { id: 100, name: Howard Moon } removeId(user1) //=> { name: Howard Moon, password: Password! }

调整对象属性的位置

有时属性不符合我们所需要的顺序。使用一些技巧,我们可以将属性推到列表的顶部,或者将它们移动到底部,例如:

const user3 = { password: Password!, name: Naboo, id: 300 } const organize = object => ({ id: undefined, ...object }) // ------------- // / // move id to the first property organize(user3) //=> { id: 300, password: Password!, name: Naboo }

在这个例子里面将id已到了第一位,下面的例子是将password属性移动到最后一位

const user3 = { password: Password!, name: Naboo, id: 300 } const organize = ({ password, ...object }) => ({ ...object, password }) // -------- // / // move password to last property organize(user3) //=> { name: Naboo, id: 300, password: Password! }

默认属性

const user2 = { id: 200, name: Vince Noir } const user4 = { id: 400, name: Bollo, quotes: ["Ive got a bad feeling about this..."] } const setDefaults = ({ quotes = [], ...object}) => ({ ...object, quotes }) setDefaults(user2) //=> { id: 200, name: Vince Noir, quotes: [] } setDefaults(user4) //=> { //=> id: 400, //=> name: Bollo, //=> quotes: ["Ive got a bad feeling about this..."] //=> }

值得注意的是默认属性值仅在未包含在原始对象中时才会设置,从这个例子的结果来看,我们就知道怎样设置默认值了。或者你也可能需要这样写

const setDefaults = ({ ...object}) => ({ quotes: [], ...object })

重命名对象的属性

在有些场景,比如我们可能需要修改对象属性的大小写,那么我们可以通过这样的方式来重命名

const renamed = ({ ID, ...object }) => ({ id: ID, ...object }) const user = { ID: 500, name: "Bob Fossil" } renamed(user) //=> { id: 500, name: Bob Fossil }//将大写ID改成了小写的

条件属性

这个有时候会非常实用,从名字来看,显示是通过条件来控制对象的属性

const user = { id: 100, name: Howard Moon } const password = Password! const userWithPassword = { ...user, id: 100, ...(password && { password }) } userWithPassword //=> { id: 100, name: Howard Moon, password: Password! }

总结

本文通过介绍一些小技巧来操作对象的属性,有时候这些技巧是不为人知的,所以在此分享给大家,内容来源于网络上的技术博客,再次共享,如果对你有帮助,麻烦点赞、转发加关注吧,谢谢!

上一篇:

下一篇:

  同类阅读

分享