>
/*下面三個函式分別和deng形成了閉包,共同用deng的閉包
preparewife這個變數能用,但是無法訪問,因為它不是物件生成的東西,是物件和原有空間生成的閉包,這就是私有化變數
*/function
deng
(name,wife)
this
.changepreparewife
=function
(target)
this
.saypraprewife
=function()
}var deng=
newdeng
('deng'
,'xiaoliu'
)script
>
>
var name=
'bcd'
var init=
(function()
//留出乙個介面 傳給init
return
function()
}())
init()
;//執行的結果abc不是bcd 因為形成了閉包,閉包變數私有化,不汙染全域性變數
/*入口函式取名為init,約定俗成的用法*/
var initdeng=
(function()
return
function()
}())
script
>
>
function
person
(name)
offer:function(){}}*/
var money =
100;
//不給顯示出來,只能通過方法來改,這就是私有化屬性 外部不能訪問 在方法的作用域鏈裡
this
.name = name;
this
.makemoney
=function()
this
.offer
=function()
/* return this; 這樣就產生了閉包
*/}var person =
newperson()
script
>
>
function
person
(name,age,***)
this
.say=sss;
}var operson=
newperson()
; operson.
say();
//1 operson.
say();
//2var operson1=
newperson()
;//new了個新的person,產生了新的ao,和閉包
operson1.
say(
)//1
script
>
js必須了解的閉包私有化變數原理
閉包的私有化變數 function person offer function 此時的person裡面只有兩個方法,如果想通過person訪問money是訪問不到的,如果你想通過方法呼叫來訪問 person.makemoney.money 就會返回 uncaught typeerror cannot...
繼承(3) 閉包封裝,屬性私有化
高大上的寫法 var inherit function return function target,origin 相當於 var inherit function function demo target,origin return demo return乙個函式相當於return乙個函式的引用。...
Python中讓變數私有化 Slots
由於在python中不支援private這樣的私有化修飾符,所以如果想把乙個類屬性置為私有的話,方法就是在屬性名前加上雙下劃線 這樣在編譯後,就可以起到保護私有屬性的作用 例如 假如有個類numstr有乙個self.num屬性 在加上雙下劃線後變成self.num後,經過編譯就形成了self.num...