1. ES6 计算属性名

ES6 中引入了计算属性名,英文是 computed property names,它可以在对象字面量中动态计算属性名称。

我们知道添加或修改对象的属性有两种常用的方法,一种是使用 . 语法,另外还可以使用 [] 传入一个结果为字符串的表达式。

  • 使用 . 添加或修改属性
const person = {}
person.name = '钢铁侠'
person.name = '美国队长'
  • 使用 [] 添加或修改属性
const person = {}
person['name'] = '钢铁侠'
str = 'name'
person[str] = '美国队长'

但是在对象字面量语法中,不管属性名加不加引号,它都会被当成一个字符串,没有办法动态生成属性名。

下面的例子中,我们尝试用 name 变量设置 person 对象字面量的属性名称,结果最终的属性名称还是 'name',而不是 '名字'

let name = '名字'
const person = {name: '钢铁侠'
}
console.log(person)
// Object { name: "钢铁侠" }

借助 ES6 的计算属性名,就可以在对象字面量中动态生成属性名称,它的语法是在方括号内放一个表达式 [表达式]

let name = '名字'
const person = {[name]: '钢铁侠'
}
console.log(person)
// Object { "名字": "钢铁侠" }

2. 参考资料

  • Computed property names
  • 属性名表达式

3. 欢迎关注

ES6 计算属性名快速上手相关推荐

  1. es6 作为属性名的 Symbol

    作为属性名的 Symbol 由于每一个 Symbol 值都是不相等的,这意味着 Symbol 值可以作为标识符,用于对象的属性名,就能保证不会出现同名的属性.这对于一个对象由多个模块构成的情况非常有用 ...

  2. Vue02基础语法-插值+过滤器+计算属性+计算属性

    14天阅读挑战赛 努力是为了不平庸~ 目录 1.模板语法 1.1 插值 1.1.1 文本 1.1.2 html 1.1.3 属性 1.1.4 表达式 1.2 指令:指令指的是带有"v-&qu ...

  3. Vue — 第三天(计算属性和json-server)

    计算属性 使用场景 如果一个结果需要依赖data中的数据,但是需要经过一些逻辑处理,才能得到你想要的数据.此时就可以使用计算属性. 例如:要对给定的字符串做翻转处理之后再来显示. <div id ...

  4. Vue 过滤器、计算属性、侦听器 图解版 一目了然

    文章目录 本篇学习目标 1. vue基础 1.0_vue基础 v-for更新监测 1.1_vue基础_v-for就地更新 1.2_vue基础_虚拟dom 1.3_vue基础_diff算法 情况1: 根 ...

  5. vue 计算属性和方法

    计算属性:(1)与函数的区别:多次访问依赖性不变的计算属性会立即返回之前的计算结果,而调用方法将总会再次执行函数.能监听对象内部属性的变化(2)计算属性中的方法不能作为事件的回调函数(3)script ...

  6. 04-Vue:计算属性、侦听器、脚手架

    1.计算属性 一个变量的值,依赖另外一些数据计算而来的结果 注意:计算属性也是vue数据变量,所以不能和data里变量重名,用法和data相同的 语法: computed:{ "计算属性名& ...

  7. Swift面向对象基础(中)——Swift中的存储属性和计算属性

    1.存储属性:存储在类.结构体里的变量或者常量 2.分为:实例存储属性.类型存储属性 3.所有的存储属性必须显示的指定初始值,在定义时或者构造器当中指定 4.可选类型的存储属性可以不指定初始值 1 i ...

  8. 《从零开始学Swift》学习笔记(Day 32)——计算属性

    原创文章,欢迎转载.转载请注明:关东升的博客 计算属性本身不存储数据,而是从其他存储属性中计算得到数据. 计算属性概念: 计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的sette ...

  9. 计算属性(react)

    React 中默认是没有专门的计算属性,但是我们可以借助 class 自身的 get 语法,来模拟实现类似于计算属性的功能. 一.基础语法 1.设置计算属性 get 计算属性名() {return 计 ...

最新文章

  1. python定时器每月执行一次_python 定时器,实现每天凌晨3点执行的方法
  2. 莱比特矿池CEO江卓尔:BCH作为货币不需要新功能,但出于货币竞争的考虑需要
  3. linux 线程 pthread create 源码 剖析
  4. top命令详析及排查问题使用演示
  5. SpringMVC对Ajax请求的处理
  6. 虚拟环境vitualenv的使用
  7. PyTorch:保存/加载训练好的模型测试
  8. EBGP邻居抖动问题
  9. 背景固定,内容滑动效果 - 仿QQ下载首页
  10. golang json 转 map 切片 结构体
  11. JAVA下载的详细教程
  12. 三极管共射放大电路的放大倍数怎么设计?
  13. 第四章css总结,第四章CSS层叠样式表分析.doc
  14. 银心科技与黑萤科技达成战略合作,联合构建区块链数据库存储生态至高点
  15. 解决IIS 6.0的200KB与下载4MB的限制
  16. 骁龙778g相当于麒麟多少
  17. java数据结构--hashset
  18. 13. 线性动态电路的复频域分析
  19. pageoffice在Edge浏览器、谷歌浏览器42及以上版本和火狐浏览器52及以上版本兼容处理
  20. BootStrap中文网站

热门文章

  1. 2015美国大学计算机科学专业排名,2015年US News美国大学计算机专业排名
  2. Android扫码功能--华为统一扫码服务
  3. 人工智能实战第三次作业 焦宇恒
  4. linux 内核printk 打印信息查询方法
  5. css样式单位px,em,pt,ex,pc,in,mm,cm详解
  6. 打开任务管理器的方法
  7. Windows简体系统和繁体系统下的乱码处理
  8. Redis缓存穿透、击穿、雪崩、概念及解决办法
  9. 腾讯Redis压轴笔记,成功入职阿里
  10. 大疆 android 简书,实测大疆智图与CC(Smart3D)三维建模、正射拼图对比