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 相关文章推荐
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 Javascript
一些mootools的学习资源
Feb 07 Javascript
一个简单的瀑布流效果(主体形式自写)
May 27 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
JS设计模式之数据访问对象模式的实例讲解
Sep 30 Javascript
利用Decorator如何控制Koa路由详解
Jun 26 Javascript
Vue项目数据动态过滤实践及实现思路
Sep 11 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
Apr 15 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
Jul 29 Javascript
利用JS响应式修改vue实现页面的input值
Sep 02 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
基于canvas实现手写签名(vue)
May 21 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 会话(session 时间设定)使用入门代码
2008/06/05 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
python读取和保存图片5种方法对比
2018/09/12 Python
python多任务及返回值的处理方法
2019/01/22 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
军训心得体会
2013/12/31 职场文书
高中军训感言1000字
2014/03/01 职场文书
领导接待方案
2014/03/13 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
运动会宣传口号
2014/06/09 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python