ES6对象(1):新增语法与API
目录
一.新增的对象字面量语法
1.成员速写
2.方法速写
3.计算属性名
二.Object的新增API
1.Object.is
2.Object.assign
3.Object.getOwnPropertyNames的枚举顺序
4.Object.setPrototypeOf
一.新增的对象字面量语法
1.成员速写
如果对象字面量初始化时,成员的名称来自于一个变量,并且和变量名的名称相同,则可以进行简写
【例1-1】
之前的写法
function personMes(name, sex, age, address) {return {name : name,sex : sex,age : age,address: address,}
}
const person = personMes('jwh', 'female', 18, '陕西省');
console.log(person);
ES6写法
function personMes(name,sex,age,address) {return{name,sex,age,address}
}
const person = personMes('jwh', 'female', 18, '陕西省');
console.log(person);
2.方法速写
对象字面初始化时,方法可以省略冒号和function关键字
【例1-2】
之前的写法
const init = {name : 'jwh',age : 18,print: function () {console.log(this.name, this.age);}
}
init.print();
ES6写法
const init = {name : 'jwh',age : 18,print() {console.log(this.name, this.age);}
}
init.print();
3.计算属性名
有的时候,初始化对象时,某些属性名可能来自于某个表达式的值,在ES6中,可以使用中括号来表示该属性名是通过计算得到的。
【例1-3】
const prop1 = 'name';
const prop2 = 'age';
const prop3 = 'print';
const user = {[prop1] : 'jwh',[prop2] : 18,[prop3] () {console.log(this[prop1] ,this[prop2])}
}
user[prop3]();
console.log(user);
二.Object的新增API
1.Object.is
用于判断两个数据是否相等,基本上跟严格相等(===)是一致的,除了以下两点
- NaN和NaN相等
- +0和-0不相等
【例2-1】
console.log('NaN === NaN的结果', NaN === NaN);
console.log('Object.is(NaN, NaN)', Object.is(NaN, NaN));
console.log('+0 === -0的结果', +0 === -0);
console.log('Object.is(+0, -0)',Object.is(+0, -0));
【结果】
2.Object.assign
用于混合对象,Object.assign(obj1, obj2,...),将所有对象按照顺序混合到第一个对象上,若obj1没有的属性则直接添加,若obj1有该属性,则进行覆盖。
【例2-2】
obj1 = {name: 'jwh',age: 18,sex: 'female'
}
obj2 = {grade: 1,number: 1901210214,name: 'ths'
}
obj3 = {address: 2313,grade: 2
}
Object.assign(obj1, obj2, obj3);
console.log('obj1:', obj1);
console.log('obj2:', obj2);
console.log('obj3:', obj3)
【结果】
3.Object.getOwnPropertyNames的枚举顺序
Object.getOwnPropertyNames方法之前就存在,只不过官方没有明确要求对属性的顺序如何排序,具体如何排序,完全由浏览厂商决定。ES6规定了该方法返回的数组的排序方式如下
- 先排数字,并按照升序排列
- 再排其他,按照书写顺序排序
【例2-3】
obj1 = {2: 'grade',name: 'jwh',1: 'address',age: 18,sex: 'female',
}
console.log(Object.getOwnPropertyNames(obj1));
【结果】
4.Object.setPrototypeOf
该函数用于设置某个对象的隐式原型,比如Object.setPrototypeOd(obj1, obj2),相当于obj1.__proto__ = obj2.__proto__
【例2-4】不设置的话,obj1的隐式原型是Object
obj1 = {name: 'jwh',age: 18,sex: 'female'
}
obj2 = {grade: 1,number: 1901210214
}
Object.setPrototypeOf(obj1, obj2)
console.log(obj1);
【结果】
ES6对象(1):新增语法与API相关推荐
- ES6的常见新增语法
目录 前言 一.立即执行函数 二.箭头函数 三.this指向 this指向的理解 普通函数的this指向 箭头函数的this指向 四.改变this指向 语法1:call() apply() 语 ...
- ES6新增语法与内置对象扩展
技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是ES6 ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项 ...
- ES6/06/ES6简介,ES6新增语法,let声明变量,const声明常量,var,let和const总结,数组解构,对象解构,箭头函数,剩余参数
ES6简介 ES全称:ECMAScript ; 由ECMA国际化组织制定的标准脚本语言的标准化规范: 为什么使用ES6? 每一次标准的诞生都意味着语言的完善,功能的加强,JavaScript语言本身也 ...
- ECMA2015(ES6)简单入门-9-对象-对象的扩展-对象的新增方法
对象的创建 使用Object构造函数来创建一个对象 使用对象字面量创建一个对象 工厂模式创建对象 构造函数模式创建对象 原型模式创建对象 本身也有缺陷,就是实例共享了引用类型friends,从下面的代 ...
- ES6 对象的新功能与解构赋值介绍
ES6 通过字面量语法扩展.新增方法.改进原型等多种方式加强对象的使用,并通过解构简化对象的数据提取过程. 一.字面量语法扩展 在 ES6 模式下使用字面量创建对象更加简洁,对于对象属性来说,属性初始 ...
- es6 对象中是否有键值_干货| ES6/ES7好玩实用的特性介绍
本文介绍一些ES6/ES7好玩实用又简单的特性,或许对写代码的效率也有一定帮助噢. ES6/ES7的出现已经有一段时间了,里面的一些新特性你们是否了解呢?本骚年将结合自身的一些使用经历介绍一些简单实用 ...
- iOS11新增版本判断API
iOS11新增版本判断API iOS11版本现在有了简单的API,OC也开始支持swfit的@available语法,不用再手写iOS版本判断了. if (@available(iOS 11.0, * ...
- 为什么说ES6的class是语法糖?
0. 前言 我们带着问题去阅读本文: 为什么说ES6的class是语法糖? class是原型的语法糖吗? 那又是如何使用原型来实现class这一语法糖的呢? 1. 基于Prototype的OOP 先来 ...
- ES6入门:方括号语法
ES6入门:方括号语法 1.方括号语法的用法 const prop = 'age'; const person = {}; //给person添加属性age //person.prop = 18; 错 ...
最新文章
- 常见蓝牙模块介绍和AT指令
- html如何引入swiper,vue-cli webpack 引入swiper的操作方法
- 23. Leetcode 86. 分隔链表 (链表-基础操作类-分隔链表)
- 爬虫Selenium报错“cannot find Chrome binary“解决方案
- Luogu P5652 基础博弈练习题 (博弈论、图论)
- 测试开发python面试_python测试开发面试之深浅拷贝
- 如何选择和计算滤波电容?--电容使用详述
- Class Imbalance Problem
- 首席技术执行官_如何在几分钟内找到任何首席执行官的电子邮件地址
- asp.net 3.5 知识点
- PyCharm平台下初学Django框架
- 双系统重装windows后修复UBUNTU的GRUB
- java关键字transient和volatile的基本含义和使用方法
- hp1008win7驱动问题
- visio premium 2010 产品密钥
- 数据分析之数据可视化
- 美国英语情景对话大全(zt)
- vue valley_12个无剧透的Stardew Valley秘诀和技巧,助您入门
- vue二维码生成与图片下载
- 【记录】gis空间分析poi点分布的影响因素操作过程