解构

让我们暂时回顾phi函数:

  1. function phi(table) {
  2. return (table[3] * table[0] - table[2] * table[1]) /
  3. Math.sqrt((table[2] + table[3]) *
  4. (table[0] + table[1]) *
  5. (table[1] + table[3]) *
  6. (table[0] + table[2]));
  7. }

这个函数难以阅读的原因之一,是我们有一个指向数组的绑定,但我们更愿意拥有数组的元素的绑定,即let n00 = table [0]以及其他。 幸运的是,有一种简洁的方法可以在 JavaScript 中执行此操作。

  1. function phi([n00, n01, n10, n11]) {
  2. return (n11 * n00 - n10 * n01) /
  3. Math.sqrt((n10 + n11) * (n00 + n01) *
  4. (n01 + n11) * (n00 + n10));
  5. }

这也适用于由letvarconst创建的绑定。 如果你知道要绑定的值是一个数组,则可以使用方括号来“向内查看”该值,并绑定其内容。

类似的技巧适用于对象,使用大括号代替方括号。

  1. let {name} = {name: "Faraji", age: 23};
  2. console.log(name);
  3. // → Faraji

请注意,如果尝试解构nullundefined,则会出现错误,就像直接尝试访问这些值的属性一样。