我正在導出一個類,我不希望用戶能夠訪問變量 name
變量。從技術角度來看,這樣做有沒有什麼不對,而不是個人偏好?我知道這可能不是最佳做法,但它似乎有效。Javascript:使用模塊時的「私有」變量
let _name = 'bob';
export default class Person {
getName() {
return _name;
}
setName(name) {
_name = name;
}
}
我正在導出一個類,我不希望用戶能夠訪問變量 name
變量。從技術角度來看,這樣做有沒有什麼不對,而不是個人偏好?我知道這可能不是最佳做法,但它似乎有效。Javascript:使用模塊時的「私有」變量
let _name = 'bob';
export default class Person {
getName() {
return _name;
}
setName(name) {
_name = name;
}
}
問題很簡單 - _name
駐留在閉包中,Person的所有實例都將設置並獲取相同的_name。
var a = new Person();
a.setName('John');
var b = new Person();
b.getName(); // the result will be John
嗯,我所看到的,我的看法是,_name
不再是私有按照您所提供的代碼,因爲要定義getter
和setter
方法,基本上變成了可變公衆。
你也應該看看@ OriDrori的回答,因爲他對變量範圍是正確的。
你已經基本實現了一個單例。 –
嘗試使用兩個實例發生的情況。 – Bergi