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 相关文章推荐
JavaScript中this关键字使用方法详解
Mar 08 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
Aug 28 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
Mar 04 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
Aug 20 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
Aug 13 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
通过命令行创建vue项目的方法
Jul 20 Javascript
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
vue.js,ajax渲染页面的实例
Feb 11 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 23 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(3)
2006/10/09 PHP
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
php检测文件编码的方法示例
2014/04/25 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
JS中定位 position 的使用实例代码
2017/08/06 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
跟老齐学Python之list和str比较
2014/09/20 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
安全生产活动月方案
2014/03/09 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle