慕前端8664132
2016-10-13 14:27:53
求js和jQuery多種保護(hù)內(nèi)變量不受外界干擾的寫法
5 回答
已采納

Ego_echo
TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超1個(gè)贊
你的需求很不明確!作為一個(gè)程序員,請(qǐng)注意清晰的表達(dá)很重要!請(qǐng)注意清晰的表達(dá)很重要!請(qǐng)注意清晰的表達(dá)很重要!
猜一下:你是想在外部得到內(nèi)部的變量,但外部卻不能改變函數(shù)內(nèi)部的變量嗎?
如果是這樣的話,很簡(jiǎn)單啊,直接用閉包就好了(jQuery也是同樣的道路?。?!
function?foo(){ ????var?a?=?10; ????function?bar(){ ??????alert(a);????//你也可以直接寫?return?a;?嘛 ????} ????return?bar; } var?baz?=?foo(); baz();????//會(huì)彈出提示框顯示10!你沒辦法在這里改變foo里面的a變量,但你卻得到了a的值
另外一種閉包形式——立即執(zhí)行函數(shù):
var?a?=?10 !function(){ ????var?a?=?20; ????console.log(a);????//會(huì)在控制臺(tái)打印?20 }(); console.log(a);????//會(huì)在控制臺(tái)打印?10

貓先生3
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
使用閉包,實(shí)際的做法是
$(function(){
? ? /*此處為需要防止變量污染的函數(shù)*/
})
添加回答
舉報(bào)
0/150
提交
取消