ES6新特性之Object的变化分析


Posted in Javascript onMarch 31, 2017

本文实例讲述了ES6新特性之Object的变化。分享给大家供大家参考,具体如下:

Object的变化

1. ES6允许在对象中只写属性名,不写属性值,属性值为属性名对应的变量值

var a = 'hi';
var obj = {a};
console.log(obj); //Object {a: "hi"}

2.对象内方法的简写

var a = 'hi';
var obj = {
  name: 'ES6',
  a,
  sayHi(){
    console.log(this.a+' '+this.name);
  }
}
obj.sayHi(); //hi ES6

3.ES6允许字面量定义对象时用表达式作为对象的属性名

var a = 'b';
var obj = {
  [a]: 'ES6',
  ['c' + 'd']: 'hi'
}
console.log(obj); // Object {b: "ES6", cd: "hi"}

4.对象内方法名可以通过name访问

var a = 'hi';
var obj = {
  name: 'ES6',
  a,
  sayHi(){
    console.log(this.a+' '+this.name);
  }
}
obj.sayHi(); //hi ES6
console.log(obj.sayHi.name); //sayHi

5.Object.is()

用来比较两个值是否严格相等,与 ===  的区别在于, Object.is(NaN, NaN) 返回true,Object.is(+0, -0) 返回false。

6.Object.Assign()

用于将源对象的所有可枚举属性复制到目标对象上。

var obj_source_1 = {
  a: {
    a1: 'hi',
    a2: 'ES6'
  },
  b: 'hello'
}
var obj_source_2 = {
  c: 'ES2015',
}
var result = Object.assign({}, obj_source_1, obj_source_2);
console.log(result); //Object {a: Object, b: "hello", c: "ES2015"}

一般用法:为对象添加属性、方法,克隆对象,合并对象。

希望本文所述对大家ECMAScript程序设计有所帮助。

Javascript 相关文章推荐
javascript延时重复执行函数 lLoopRun.js
Jun 29 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
Jul 03 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
Apr 17 Javascript
深入解读JavaScript中的Hoisting机制
Aug 12 Javascript
AngularJs Forms详解及简单示例
Sep 01 Javascript
纯JS单页面赛车游戏制作代码分享
Mar 03 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
Apr 25 Javascript
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
vue与iframe之间的信息交互的实现
Apr 08 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 Javascript
ES6新数据结构Set与WeakSet用法分析
Mar 31 #Javascript
ES6新数据结构Map功能与用法示例
Mar 31 #Javascript
基于AGS JS开发自定义贴图图层
Mar 31 #Javascript
Node.js使用Express创建Web项目详细教程
Mar 31 #Javascript
ES6使用let命令更简单的实现块级作用域实例分析
Mar 31 #Javascript
JS解决移动web开发手机输入框弹出的问题
Mar 31 #Javascript
详解使用JS如何制作简单的ASCII图与单极图
Mar 31 #Javascript
You might like
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
python实现Windows电脑定时关机
2018/06/20 Python
python 列表降维的实例讲解
2018/06/28 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
Python函数参数分类原理详解
2020/05/28 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
利用python爬取有道词典的方法
2020/12/08 Python
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
小学运动会入场词
2015/07/18 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
分享一些Java的常用工具
2021/06/11 Java/Android
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
Python matplotlib绘制雷达图
2022/04/13 Python
python数字图像处理:图像简单滤波
2022/06/28 Python