存取器

24.1 存取器函数不是必须的

24.2 不要使用JavaScript getters / setter,因为它们会导致意想不到的副作用,而且很难测试,维护和推理。相反,如果你想用访问函数,使用getVal()和setVal('hello')。

// bad
class Dragon {
  get age() {
    // ...
  }

  set age(value) {
    // ...
  }
}

// good
class Dragon {
  getAge() {
    // ...
  }

  setAge(value) {
    // ...
  }
}

23.3 如果你的属性/方法是一个布尔值,使用isVal()或者hasVal()

// bad
if (!dragon.age()) {
  return false;
}

// good
if (!dragon.hasAge()) {
  return false;
}

23.4 创建set()和get()函数是可以的,但要保持一致

class Jedi {
  constructor(options = {}) {
    const lightsaber = options.lightsaber || 'blue';
    this.set('lightsaber', lightsaber);
  }

  set(key, val) {
    this[key] = val;
  }

  get(key) {
    return this[key];
  }
}

results matching ""

    No results matching ""