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) 专享 尊重版权
   278   279   280   281   282   283   284   285   286   287   288