Page 283 - 你不知道的JavaScript(下卷)
P. 283
break;
}
}
} );
在这个小例子中,我们侦听改变事件,直到看到 "setPrototype" 事件发生,然后就停止观
察任何新改变事件。
8.3 幂运算符
有提案提出为 JavaScript 新增一个运算符用于执行幂运算,就像 Math.pow(..) 一样。考虑:
var a = 2;
a ** 4; // Math.pow( a, 4 ) == 16
a **= 3; // a = Math.pow( a, 3 )
a; // 8
** 实际上和 Python、Ruby、Perl 以及其他一些语言中的同名运算符一样。
8.4 对象属性与 ...
我们在 2.5 节已经看到,... 运算符展开和收集数组的用法很直观,那么对于对象呢?
本考虑在 ES6 中支持这个功能,但已经被推迟到了 ES6 之后(也就是“ES7”或者
“ES2016”或者……)。下面是它在“ES6 之后”的时代中可能的工作方式:
var o1 = { a: 1, b: 2 },
o2 = { c: 3 },
o3 = { ...o1, ...o2, d: 4 };
console.log( o3.a, o3.b, o3.c, o3.d );
// 1 2 3 4
... 运算符可能也会用于把对象的解构属性收集到一个对象:
var o1 = { b: 2, c: 3, d: 4 };
var { b, ...o2 } = o1;
console.log( b, o2.c, o2.d ); // 2 3 4
在这里,...o2 把解构的 c 和 d 属性重新收集回到 o2 对象(o2 没有 o1 中的 a b 属性)。
再次声明,这只是 ES6 之后的在考虑之中的提案。但是如果实现的话会很酷。
260 | 第 8 章
图灵社区会员 avilang(1985945885@qq.com) 专享 尊重版权