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 相关文章推荐
js或css实现滚动广告的几种方案
Jan 28 Javascript
js实现带按钮的上下滚动效果
May 12 Javascript
JS实现简单的图书馆享元模式实例
Jun 30 Javascript
超级给力的JavaScript的React框架入门教程
Jul 02 Javascript
js严格模式总结(分享)
Aug 22 Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 Javascript
Json按某个键的值进行排序
Dec 22 Javascript
基于jQuery实现的打字机效果
Jan 16 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
Jan 24 Javascript
Element-UI+Vue模式使用总结
Jan 02 Javascript
JS实现“全选”和"全不选"功能代码实例
Feb 06 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
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将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
Tesserocr库的正确安装方式
2018/10/19 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
python 常见的排序算法实现汇总
2020/08/21 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
加工操作管理制度
2014/01/19 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
高中教师个人工作总结
2015/02/10 职场文书
教导主任个人总结
2015/03/03 职场文书
欠款起诉书范文
2015/05/19 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
转变工作作风心得体会
2016/01/23 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫