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代码
Mar 07 Javascript
简单三步,搞掂内存泄漏
Mar 10 Javascript
window.location.hash 使用说明
Nov 08 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
Extjs grid添加一个图片状态或者按钮的方法
Apr 03 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
Sep 04 Javascript
第四章之BootStrap表单与图片
Apr 25 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
Feb 22 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
Aug 09 Javascript
如何用JavaScipt测网速
May 09 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
详解HTTP Cookie状态管理机制
2016/01/14 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
knockoutjs模板实现树形结构列表
2017/07/31 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
详解Python中for循环的使用方法
2015/05/14 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
python线程里哪种模块比较适合
2020/08/02 Python
Python与C/C++的相互调用案例
2021/03/04 Python
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
JAVA中运算符的分类及举例
2015/09/12 面试题
商务邀请函范文
2014/01/14 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
致接力运动员加油稿
2015/07/21 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技