解构

  • 5.1 使用解构存取和使用多属性对象。

    为什么?因为解构能减少临时引用属性。

    1. // bad
    2. function getFullName(user) {
    3. const firstName = user.firstName;
    4. const lastName = user.lastName;
    5. return `${firstName} ${lastName}`;
    6. }
    7. // good
    8. function getFullName(obj) {
    9. const { firstName, lastName } = obj;
    10. return `${firstName} ${lastName}`;
    11. }
    12. // best
    13. function getFullName({ firstName, lastName }) {
    14. return `${firstName} ${lastName}`;
    15. }
  • 5.2 对数组使用解构赋值。

    1. const arr = [1, 2, 3, 4];
    2. // bad
    3. const first = arr[0];
    4. const second = arr[1];
    5. // good
    6. const [first, second] = arr;
  • 5.3 需要回传多个值时,使用对象解构,而不是数组解构。

    为什么?增加属性或者改变排序不会改变调用时的位置。

    1. // bad
    2. function processInput(input) {
    3. // then a miracle occurs
    4. return [left, right, top, bottom];
    5. }
    6. // 调用时需要考虑回调数据的顺序。
    7. const [left, __, top] = processInput(input);
    8. // good
    9. function processInput(input) {
    10. // then a miracle occurs
    11. return { left, right, top, bottom };
    12. }
    13. // 调用时只选择需要的数据
    14. const { left, right } = processInput(input);