私有變數:只能在類的內部訪問的變數,無法在外部訪問
實現私有變數的方式:
class a
showx()
}console.log(a._x); // abc
console.log(a.showx()); // abc
優點:簡單、快捷
缺點:可以通過 for ... in 訪問到
class b
}}let b = new b('instanceb');
console.log(b._x); // undefined
console.log(b.showx());// instanceb
優點:從本質上解決私有變數問題
缺點:
let c = (function()
showx()
}return c;
}());
let c = new c('ccc');
console.log(c._x); //undefined
console.log(c.showx()); //ccc
優點:解決了閉包的問題
缺點:帶來了一點額外的效能開銷
let _y = symbol('y');
class d
showy()
}let d = new d('test');
console.log(d._y); //undefined
console.log(d.showy()); //test
class定義私有屬性和私有方法
私有方法和私有屬性,是只能在類的內部訪問的方法和屬性,外部不能訪問。但 es6 不提供,只能通過變通方法模擬實現 下面是私有方法和私有屬性暴露的例子 class foo 私有方法 bar baz const instance new foo instance.foo 1 instance.baz 1...
python私有變數
只有在函式裡 不一定是建構函式 以 開頭的變數才是私有變數,看 class a definit self self.data1 1 self.data2 2 self.data3 3 self.data4 44 def fun1 self print self.data4 self.data5 5 ...
python私有變數
在python中定義私有變數只需要在變數名或函式名前加上 兩個下劃線,那麼這個函式或變數就是私有的了。在內部,python使用一種 name mangling 技術,將 membername替換成 classname membername,也就是說,類的內部定義中,所有以雙下劃線開始的名字都被 翻譯...