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 相关文章推荐
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
js函数排序的实例代码
Jul 01 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 Javascript
javascript获取元素离文档各边距离的方法
Feb 13 Javascript
JavaScript将数字转换成大写中文的方法
Mar 23 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
Apr 12 Javascript
jQuery中 prop() attr()使用详解
May 19 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
Aug 01 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
基于element-ui封装表单金额输入框的方法示例
Jan 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
php cout<<的一点看法
2010/01/24 PHP
php定界符
2014/06/19 PHP
php常用数组函数实例小结
2016/12/29 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
Vue基于NUXT的SSR详解
2017/10/24 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
详解flask入门模板引擎
2018/07/18 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
python调用支付宝支付接口流程
2019/08/15 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
社团活动总结
2014/04/28 职场文书
优秀家长事迹材料
2014/05/17 职场文书
团队拓展活动总结
2014/08/27 职场文书
倡议书作文
2015/01/19 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
2015年物流客服工作总结
2015/07/27 职场文书