В приведенном ниже коде, всякий раз, когда я нажимаю кнопку отправки, открывается несколько окон, как это было в бесконечном цикле. Если я раскомментирую предупреждение, то несколько предупреждений продолжают появляться, как в бесконечном цикле. Почему это могло произойти?Почему мой код 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