鍍金池/ 問答/HTML/ JavaScript全局變量賦值后又變?yōu)槌跏贾?/span>

JavaScript全局變量賦值后又變?yōu)槌跏贾?/h1>

初學(xué)JavaScript,下面這段代碼,第一次點擊按鈕的時候,timer1的值是傳入的2000,然后用計時器t調(diào)用,timer1的值就變?yōu)槌跏贾?000了,為什么傳入的2000會被初始值1000覆蓋呢?

clipboard.png

<html>

<head>
    <script type="text/javascript">
         var timer1=1000;

        function startTime(timer1) {
            var today = new Date()
            var h = today.getHours()
            var m = today.getMinutes()
            var s = today.getSeconds()
            document.getElementById('txt').innerHTML = h + ":" + m + ":" + s
            t = setTimeout('startTime(timer1)', timer1);
            console.log('timer1的值為 '+timer1)
        }
    </script>
</head>

<!--body onload="startTime()"-->
<div id="txt">此處顯示時間</div>
<button onclick='clearTimeout(t)'> 點我停止 </button>
<button onclick="startTime(2000)">點我開始</button>
</body>

</html>

回答
編輯回答
念舊

你這樣寫法 第一次調(diào)用實參2000 傳入 作用域里面timer1為2000
但是 第二次函數(shù)內(nèi)部調(diào)用startTime(timer1)  此時傳入的timer1值為全局變量1000
2017年2月28日 22:06