之前可能已经提出这个问题,但我能找到的只是关于C和Bash等的问题。
基本上我很难理解功能参数及其引用的内容。
我知道你通常在调用函数时设置参数,例如doSomething(3,'Hello')
等,但是当我从教程中读取代码时,
window.onload = initAll;
function initAll() {
if (document.getElementById) {
for (var i=0; i<24; i++) {
setSquare(i);
}
}
else {
alert("Sorry, your browser doesn't support this script");
}
}
function setSquare(thisSquare) {
var currSquare = "square" + thisSquare;
var colPlace = new Array(0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4);
var colBasis = colPlace[thisSquare] * 15;
var newNum = colBasis + getNewNum() + 1;
document.getElementById(currSquare).innerHTML = newNum;
}
function getNewNum() {
return Math.floor(Math.random() * 15);
}
从setSquare()
获取thisSquare
参数的位置在哪里?
答案 0 :(得分:1)
initAll
内部有以下代码:
for (var i=0; i<24; i++) {
setSquare(i);
}
因此initAll
正在调用setSquare
24次。每次传递i
的值。 (0,1,2等)。因此i
的值为thisSquare
答案 1 :(得分:1)
在您的第一个函数initAll()
中,您正在调用setSquare(i)。在这种情况下,i
是参数。根据{{1}},initAll()
是i
循环中的数字。基本上正在发生的是你为每个0到24的方块号调用setSquare。
for
功能已将setSquare()
重命名为i
。现在,在thisSquare
函数内的任何位置,setSquare()
都设置为thisSquare
之前的相同值。
希望有所帮助,祝你好运。
答案 2 :(得分:0)
setSquare
函数中调用 initAll
,该函数从0到23传递一个值。在加载页面时(理论上)调用initAll
函数。
答案 3 :(得分:0)
在这种情况下,它是从for
函数中的initAll()
循环获取的,但它可以从您调用setSquare
函数
答案 4 :(得分:0)
setSquare从哪里获取thisSquare的参数?
就在这里:setSquare(i);
在setSquare函数中,currSquare最终成为Dom元素的id(例如,currSquare1)。