譬如我有一個Person類,擁有name這一私有屬性。//Javascriptcode:functionPerson(theName){varname=theName;//對象的私有成員this.getName=function(){//訪問私有成員的成員方法寫在對象中是沒有問題的。returnname;};}Person.prototype.setName=function(newName){//訪問私有成員的成員方法是否可以寫在類的原型中?};是不是需要訪問到私有成員的成員方法都不能寫在原型里?但是這樣又會造成資源的浪費,有沒有兩全其美的方法?后來試過了做類構(gòu)造的閉包,寫成了這樣://Javascriptcode:varPerson=(function(){varname;varP=function(theName){name=theName;this.getName=function(){returnname;};};P.prototype.setName=function(newName){name=newName;};returnP;}());很顯然name變成了靜態(tài)私有變量而不是成員私有變量。雖然可以創(chuàng)建靜態(tài)字典,但是代碼的可讀性會降低。有沒有其它的解決方法?
在Javascript中,訪問私有成員的成員方法是否可以寫在類的原型中?
慕勒3428872
2019-04-23 15:35:45