上次我发现这段代码包含在一些 教程中。它只是在定义的范围内打印数字。Javascript“write”as function name and more
<!DOCTYPE html>
<html lang="pl">
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript">
function wypisz()
{
var liczba1 = document.getElementById("pole1").value;
var liczba2 = document.getElementById("pole2").value;
var napis = "";
for (i=liczba1; i<=liczba2; i++)
{
napis = napis + i + " ";
}
document.getElementById("wynik").innerHTML = napis;
}
</script>
</head>
<body>
<input type="text" id="pole1" />
<input type="text" id="pole2" />
<input type="submit" value="Pokaż" onclick="wypisz()"/>
<div id="wynik"></div>
</body>
</html>
- 当我改变函数名“wypisz()”到“写()”,我按下按钮时,页面变成白色和永无止境的开始装载。 是否将“写入”保留为全局函数名称?我看不出在这里: JavaScript Reserved Words
- 在相同的代码,当我定义提起<在第二个第一输入文本和11-19>的< 2-9范围>,什么都不会发生。但是,当我在第一个数字前加零时,它就起作用了。这是什么意思?
这是我的解决方法(我增加了一个功能,从上往下数):
<head>
<meta charset="utf-8" />
<script type="text/javascript">
function _write()
{
var number1 =document.getElementById("field1").value;
var number2 =document.getElementById("field2").value;
var tab=new Array();
var number=Math.abs(number2-number1);
if(number1<10 && number1>1) number1=0+number1;//add zero
for(i=0;i<=number;i++)
{
tab.push(number1);
if(number1<number2)
++number1;
else
--number1; //bigger-smaller
}
document.getElementById("result").innerHTML=tab.join(" ");
}
</script>
</head>
<body>
<input type="text" id="field1" />
<input type="text" id="field2" />
<input type="submit" value="SHOW" onclick="_write()"/>
<div id="result"></div>
</body>
心想: “问题解决”。然后我看到了这一点:
'写()'似乎调用'document.write()的',而不是你的自己的功能。 – Barmar
@Barmar我永远无法找到它在spec中写入的位置,但_JavaScript_写入的属性具有'__proto__ === Object.prototype'和一些行为,就像'with(this){/ * code * /} ',还有更多的东西,我现在也不能确定 –