Javascript:使用模块时的“私有”变量

时间:2015-08-31 19:26:44

标签: javascript

我正在导出一个我不希望用户能够访问的类 name变量。从技术角度来看,这样做是否有任何问题,而不是个人偏好?我知道这可能不是最佳做法,但似乎有效。

let _name = 'bob';
export default class Person {
  getName() {
    return _name;
  }

  setName(name) {
    _name = name;
  }
}

2 个答案:

答案 0 :(得分:2)

问题很简单 - #testData { overflow:auto; } 驻留在一个闭包中,Person的所有实例都将设置并获得相同的_name。

_name

答案 1 :(得分:0)

嗯,正如我所看到的,我的观点是_name已根据您提供的代码不再私有,因为您正在定义getter和{{1}方法,它基本上将变量变为公共。

你也应该看看@OriDrori的答案,因为他对变量范围是正确的。