ES6 语法-Computed property names (动态计算属性名)介绍

在尚未使用 ES6 语法前,我们在写物件的时候只能使用物件[属性名]物件.属姓名去取得属性值,例如:

const attName = 'name';let person = {  name: 'Harry',  age: 22}console.log(person[name]); // Harryconsole.log(person.name); // Harry

而如果我们把属性名(key)存在一个变数,然后透过物件名[变数名]去取物件的值,是无法成功的

const attName = 'name';let person = {  attName: 'Harry',  age: 22}console.log(person[attName]); // undefined// 这样写的话等同于 物件[属性名]console.log(person['attName']); // Harry

不过 ES6 中的 Computed property names(动态计算属性名)解决了这个问题:

我们把attrName用中括号包起来,这就是动态计算属性名的用法,它可以将[]内的值当成属性名,[]内可以放变数名,可以放数学的计算式甚至是有回传值的函式

const attName = 'name';let person = {  [attName]: 'Harry',  age: 22}console.log(person[attName]); // Harry

应用範例:

const classMates = ["Harry", "John", "Tom", "Mary", "Jerry"];let classMatesList = {}classMates.forEach((name, id) => {  classMatesList = {...classMatesList, ['Id' + ++id]: name}})console.log(classMatesList); // { Id1: "Harry", Id2: "John", Id3: "Tom", Id4: "Mary", Id5: "Jerry" }

Computed property names 的介绍就到这边结束,感谢阅读:)


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章