class 私有變數

2021-10-11 01:56:03 字數 821 閱讀 5309

私有變數:只能在類的內部訪問的變數,無法在外部訪問

實現私有變數的方式:

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,也就是說,類的內部定義中,所有以雙下劃線開始的名字都被 翻譯...