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 相关文章推荐
Prototype RegExp对象 学习
Jul 19 Javascript
JS操作Cookies的小例子
Oct 15 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
Sep 11 Javascript
jQuery对象与DOM对象转换方法详解
May 10 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
Aug 01 Javascript
js HTML5手机刮刮乐代码
Sep 29 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
Mar 09 Javascript
详解React中setState回调函数
Jun 14 Javascript
layui数据表格跨行自动合并的例子
Sep 02 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文件
2007/01/04 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
python正则表达式re之compile函数解析
2017/10/25 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
质检部经理岗位职责
2014/02/19 职场文书
毕业论文评语大全
2014/04/29 职场文书
安全环保标语
2014/06/09 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
Django框架中模型的用法
2022/06/10 Python