到目前为止,试图使在函数内部创建的变量可以全局访问
console.log(proper_head);
在每次执行该功能时都需要更新时,始终显示“ 1”,这是我的功能:
var i = 0;
function change_head() {
if (i < head_class.length) {
head.classList.add(head_class[i].name);
i++;
var h = i;
return h;
} else if (i = 3) {
head.className = "";
i -= 3;
var h = i;
return h;
}
}
var proper_head = change_head();
它是通过按一个按钮执行的(不确定它是否重要)。 我想出的唯一解决方案是
setTimeout()
我确定有更好的方法。
答案 0 :(得分:0)
您可以使用像这样的递归实现:
var i = 0;
function change_head() {
if (i < head_class.length) {
head.classList.add(head_class[i].name);
i++;
var h = i;
return h;
} else if (i = 3) {
head.className = "";
i -= 3;
var h = i;
return h;
}
change_head();
}
问题是您的函数仅被调用一次,您可以从自身内部调用该函数,但是以上示例将永远不会停止,并且可能会在浏览器中达到最大调用堆栈大小,然后崩溃,我会建议将其包装在某种if语句中,以使其在某个点停止,例如i> 50。
编辑:
我知道您的实际问题是什么,您的if块都没有触发,在第一次按下后,head_class.length === 1,所以“ if(i i = 3用于分配,i == 3用于比较。 希望这会有所帮助 劳埃德if (i < 3) {
head.classList.add(head_class[i].name);
i++;
var h = i;
return h;
} else if (i == 3) {
head.className = "";
i -= 3;
var h = i;
return h;
}