這樣一個(gè)場(chǎng)景:let g=''router.get('/',function(req,res,next){ /*查數(shù)據(jù)庫(kù)修改g*/
g='date'}
router.get('/next',function(req,res,next){ /*依賴(lài)g進(jìn)行操作*/}用戶(hù)每次先進(jìn)入/路由賦值全局g,/next路由需要根據(jù)g進(jìn)行操作,如果空值跳轉(zhuǎn)/,不是空值進(jìn)行下一步操作.假如用戶(hù)A先進(jìn)入,修改g='dataA',然后用戶(hù)B進(jìn)入修改g='dataB'.如果此時(shí)A用戶(hù)請(qǐng)求/next,此時(shí)的g值是應(yīng)該是dataB,但是實(shí)際上會(huì)根據(jù)dataA來(lái)進(jìn)一步操作,g是全局公用變量,B在A后面進(jìn)入,請(qǐng)問(wèn)一下為什么會(huì)根據(jù)dataA來(lái)操作?
2 回答

呼如林
TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
node模塊中創(chuàng)建的所有變量都是局部變量,從頭到尾都是在閉包里玩。
全局變量只能用node提供的,可以用global

阿波羅的戰(zhàn)車(chē)
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
全局公用不是這么公用的,按你這個(gè)想法加大家用,如果這樣你帳戶(hù)里的錢(qián),很容易就變我的錢(qián)了,
全局是針對(duì)用戶(hù)進(jìn)程的
比如,我有這么一段程序
var ifunction add(){ console.log(i+2) }
第一次執(zhí)行 輸出為2,第二次執(zhí)行也為2,無(wú)論你執(zhí)行多少次,始終輸出2
按你的理解的話,第一次輸出為2,第二次就為4了,你說(shuō)這可能么?
- 2 回答
- 0 關(guān)注
- 910 瀏覽
添加回答
舉報(bào)
0/150
提交
取消