ECMAScript 6 学习系列课程 (ES6 对象的最新用法)
来源:互联网 发布:捕鱼 机器人算法 编辑:程序博客网 时间:2024/05/21 17:48
由于面向对象编程风格的普及,我们对对象已经有一定的认识了,对于ES6这样一个新的标准,又有那些新的特性,值得我们追捧呢?
对象的属性和方法
ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁:
const name = 'Richard';let person = {name};console.log(person); // {name: 'Richard'}
同样我们也可定义个function去返回一个对象,比如下面这段代码:
function formatPerson(name, age) { return { name, age };}console.log(formatPerson('Richard', 25)); // { name: 'Richard', age: 25 }
我们再来定义一个func和属性, 看一下代码:
let person = { name: 'Richard', age: 25, printName() { console.log(this.name); }};
属性的赋值,我们也可以使用getter 和 setter 方法,我们具体看一下代码:
let person = { name: 'Richard', set name(value) { this.name = value; }, get name() { return this.name; }};
这个使用的不是特别多,我暂且只做个了解。
Object.is()
在ES5版本中,我们如果要判断两个对象是否相等, 尝尝用== 或者===来判断,但是都有一定的缺陷,前者会发生类型转化,后者在NaN的问题上也有缺陷。
对于ES6我们可以使用Obejct.is()进行判断:
Object.is('foo', 'foo')// trueObject.is({}, {})// false
Object.assign()
这是一个常用的方法,可以将对象进行合并, 第一个参数是目标对象,也就是产生的结果,后几个是数据源对象,这其中会把所有的属性,复制到目标对象,如果其中存在相同的属性名字,后面的源对象会逐一覆盖掉。
var target = { a: 1, b: 1 };var source1 = { b: 2, c: 2 };var source2 = { c: 3 };Object.assign(target, source1, source2);target // {a:1, b:2, c:3}
Object.keys(), Object.values(),Object.entries()
let {keys, values, entries} = Object;let obj = { a: 1, b: 2, c: 3 };for (let key of keys(obj)) { console.log(key); // 'a', 'b', 'c'}for (let value of values(obj)) { console.log(value); // 1, 2, 3}for (let [key, value] of entries(obj)) { console.log([key, value]); // ['a', 1], ['b', 2], ['c', 3]}
扩展运算符
扩展运算符(…)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。
let z = { a: 3, b: 4 };let n = { ...z };n // { a: 3, b: 4 }
1 0
- ECMAScript 6 学习系列课程 (ES6 对象的最新用法)
- ECMAScript 6 学习系列课程 (ES6 Modules的使用)
- ECMAScript 6 学习系列课程 (ES6 gulp+babel 语法转化的相关用法)
- ECMAScript 6 学习系列课程 (ES6 proxy和Reflect的相关用法)
- ECMAScript 6 学习系列课程 (ES6 class的相关用法)
- ECMAScript 6 学习系列课程 (ES6 Promise对象的使用)
- ECMAScript 6 学习系列课程 (ES6简介)
- ECMAScript 6 学习系列课程 (ES6 Symbol语法的使用)
- ECMAScript 6 学习系列课程 (ES6 Generator 函数的使用)
- ECMAScript 6 学习系列课程 (ES6 Internationalization & Localization的介绍)
- ECMAScript 6 学习系列课程 (ES6 常用内置方法的使用)
- ECMAScript 6 学习系列课程 (ES6 箭头函数的使用)
- ECMAScript 6 学习系列课程 (ES6 默认值和解构赋值的使用)
- ECMAScript 6 学习系列课程 (ES6 Set和Map数据结构)
- ECMAScript 6 学习系列课程笔记
- ECMAScript 6(ES6)
- ES6(ECMAScript 6)学习笔记
- ReactJS学习系列课程(React ES6语法使用)
- mac上使用dex2jar遇到权限的解决办法
- eclipse 和 android studio 快捷键对比
- java 通过 SSL 发送 Post
- android 使用删除api已经无法删除问题
- 新一代功能
- ECMAScript 6 学习系列课程 (ES6 对象的最新用法)
- hadoop常用操作命令汇总
- SQL中 decode()函数简介
- 对博士学位说永别
- Photoshop CS6和Photoshop CS6 Extended的区别
- 关于android6.0开发奇葩问题(收集中)
- Android获取验证码后倒计时程序
- android虚拟按钮问题
- Timus 1888. Pilot Work Experience