亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這樣不行

為什么這樣,定時器沒有作用

function ss()
??? {
??????? var n=document.getElementById("num").innerHTML;
??????? document.getElementById("num").innerHTML=n--;
?????? ?
??? }

setInterval(ss,1000);

而這樣卻有作用

? var n=document.getElementById("num").innerHTML;

function ss()
??? {
??????? document.getElementById("num").innerHTML=n--;
?????? ?
??? }

setInterval(ss,1000);

正在回答

3 回答

不是,因為如果在函數里面的話,你每次獲取到的n都是5,因為你并沒有修過n的來源,相當于 b=10 a=b a++ 然后a=11,b還是10的不會變

1 回復 有任何疑惑可以回復我~
#1

唯爾半截湘妃 提問者

非常感謝!
2016-05-24 回復 有任何疑惑可以回復我~

多次調用的同一個函數之間沒有聯系,一次調用結束后,如果沒有嵌套函數頁沒有其他引用指向這個函數,函數里的變量就被清空了,不會被保存下來的,所以每次調用都是一個新的n

1 回復 有任何疑惑可以回復我~

因為你將n定義在函數中,定時器每次讀取函數的 時候n就會重新變為初始值

如果定義在外面,n為全局變量,調用函數的時候不會恢復為初始值

1 回復 有任何疑惑可以回復我~
#1

唯爾半截湘妃 提問者

我覺得都一樣?。”热缯f第一次獲取到5,給它設置成n--,也就是4,那它第二次獲取到的不就是4嗎?然后再n--
2016-05-23 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468832    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

為什么這樣不行

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號