在下面的代碼中,無論何時點擊提交按鈕,多個窗口都會以無限循環方式打開。如果我取消註釋警報,那麼多個警報會像無限循環一樣彈出。爲什麼會發生這種情況?爲什麼我的JavaScript代碼進入無限循環?
<html>
<head>
<script type = "text/javascript">
var window;
function moveBy() {
//alert("-- hello ---");
window = window.open("http://www.w3schools.com");
window.moveBy(10, 20);
}
</script>
</head>
<body>
<input type = "submit" value = "moveBy" onclick = "moveBy()"> </input>
</body>
</html>
您有一個三線功能,不能明白爲什麼它的無限循環? – j08691
當你在全局範圍內聲明一個函數時,它會附加到瀏覽器中的window對象。也就是說,你創建一個名爲'moveBy'的函數,然後在其內部調用它。 – doogle
你不能給'window'分配一個新的值。 'window = ....'不會改變'window'的值,所以你函數最後一行的'window'仍然是全局'window'對象。 – JLRishe