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 $(document).ready() 与window.onload的区别
Dec 28 Javascript
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
使用js实现一个可编辑的select下拉列表
Feb 20 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
Dec 28 Javascript
jQuery循环动画与获取组件尺寸的方法
Feb 02 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
Jun 09 Javascript
jquery实现的仿天猫侧导航tab切换效果
Aug 24 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 Javascript
vue发送websocket请求和http post请求的实例代码
Jul 11 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
Feb 16 Javascript
vscode自定义vue模板的实现
Jan 27 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
php 操作excel文件的方法小结
2009/12/31 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python常用知识点汇总
2016/05/08 Python
python实现AES加密解密
2019/03/28 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
内部类的定义、种类以及优点
2013/10/16 面试题
求职者简历中的自我评价
2013/10/20 职场文书
公司聘任书模板
2014/03/29 职场文书
小学生民族团结演讲稿
2014/08/27 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
MySQL创建表操作命令分享
2022/03/25 MySQL
如何通过一篇文章了解Python中的生成器
2022/04/02 Python