属性的简洁表示法
可以直接使用一个变量来初始化对象,变量名即属性名,变量值即属性值。
1 | var foo = 'bar'; |
另外一个例子
1 | function f_es5(x, y) { |
方法的简洁表示法
ES6 简洁方法后与一些面向对象的高级语言(如C++)差不多,函数名+参数+花括号。另外注意简洁写法的属性名是按字符串解析的。方法的属性名可以是一些关键字,由于是按字符串来解析的,所以不会产生歧义。
1 | var obj_es5 = { |
用表达式定义属性名和方法名
ES5 中仅允许使用字面常量来定义属性名和方法名,而 ES6 中允许使用表达式。比如两个字符串拼接成一个方法名,如下所示:
1 | var attrKey = 'foo'; |
Object.is() 方法
该方法用来弥补 == 和 === 的缺陷,可以严格对比两个对象是否相等。
1 | console.log(Object.is('foo', 'foo')); |
从书中复制过来的 ES5 实现 Object.is 的实现
1 | Object.defineProperty(Object, 'is', { |
Object.assign() 方法
1 | var target = { a: 1, b: 1 }; |
Object.assign
常见的用法在书中也列举了很多,我觉得非常实用,所以自己手抄一下给大家分享,更多请参考原著。
1 | // 给对象添加属性 |
1 | // 给对象添加方法 |