ES6学习教程之对象字面量详解


Posted in Javascript onOctober 09, 2017

前言

本文主要给大家介绍了关于ES6对象字面量的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

ECMAScript6使得声明对象字面量更加简单,提供了属性简写和方法简写功能,属性名计算的新特性。

function getInfo(name, age, weight) {
 return {
  // 如果属性名和属性值同名可以利用、es6的属性简写
  name, // 等同于 make: make
  age, // 等同于 model: model
  weight, // 等同于 value: value

  // ES6的属性名是可计算的
  ['over' + weight]: true,

  // 对象方法名简写可以省略 function 关键字
  descripte() {
   console.log(name, age, weight);
  }
 };
}

let person = getInfo('Kia', 27, 400);
console.log(person);// {name: "Kia", age: 27, weight: 400, over400: true, descripte: ƒ}

如果可以理解上述三个新特性,可以不必往下阅读。下面的文字仅提供给还有疑问的朋友。

属性简写

在 ES5及以前的版本中,对象字面量只支持键值对集合。实际业务中,对象字面量的初始化会有一定的代码重复。

//ES5
function createPeople(name, age) {
 return {
  name: name,
  age: age
 };
}

createPeople函数用来创建一个People的对象,可以看到上面的代码的 name和age分别书写了两次,有些麻烦。在ES6中通过使用属性简写特性可以消除这种属性名称和局部变量之间的重复书写,当对象的属性和变量同名时,可以不必再写冒号和值。

function createPeople(name, age) {
 return {
  name,
  age
 };
}

方法名简写

ES5中若为对象添加方法必须指定方法名称,并完整地定义函数来实现。

var people = {
 name: 'xixi',
 sayName: function () {
  console.log(this.name);
 }
};

ES6的语法更简洁,消除了冒号和方法名。

let people = {
 name: 'xixi',
 sayName() {
  console.log(this.name);
 }
};
people.sayName();// xixi

属性可计算

let lastName = 'last name';
let person = {
 [lastName]: 'yuan'
};
console.log(person[lastName]);// yuan

总结

对象字面量扩展的3个新特性介绍完毕,大家可以回到文章开头检查一下自己是否掌握了本小结内容。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
分享27个jQuery 表单插件集合推荐
Apr 25 Javascript
深入理解javascript变量声明
Nov 20 Javascript
javascript实现复选框选中属性
Mar 25 Javascript
浅析vue数据绑定
Jan 17 Javascript
微信小程序 九宫格实例代码
Jan 21 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
Jul 28 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
详解Angular6学习笔记之主从组件
Sep 05 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
Nov 26 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
Apr 09 Javascript
nuxt静态部署打包相对路径操作
Nov 06 Javascript
AngularJS中的路由使用及实现代码
Oct 09 #Javascript
React如何利用相对于根目录进行引用组件详解
Oct 09 #Javascript
React Native中的RefreshContorl下拉刷新使用
Oct 09 #Javascript
JS实现的全排列组合算法示例
Oct 09 #Javascript
js + css实现标签内容切换功能(实例讲解)
Oct 09 #Javascript
jQuery ajax调用webservice注意事项
Oct 08 #jQuery
js用类封装pop弹窗组件
Oct 08 #Javascript
You might like
我的论坛源代码(五)
2006/10/09 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
php网站地图生成类示例
2014/01/13 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
Python3基础之list列表实例解析
2014/08/13 Python
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python pandas常用函数详解
2018/02/07 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
flask中过滤器的使用详解
2018/08/01 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
如何基于python操作excel并获取内容
2019/12/24 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
毕业生的自我评价
2013/12/30 职场文书
幼儿园运动会口号
2014/06/07 职场文书
教育合作协议范本
2014/10/17 职场文书
阿凡达观后感
2015/06/10 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python