gpt4 book ai didi

javascript - 在方法调用中更新变量

转载 作者:行者123 更新时间:2023-11-30 17:48:05 26 4
gpt4 key购买 nike

在一个循环中,我正在调用方法 bullet.fire();在这种方法中我有 this.i++,唯一的问题是 this.i 不会在每次迭代时更新,知道为什么吗?

function projectile(){
this.i = 20;
}

projectile.prototype.fire = function(){
this.i++;
//shows value of this.i in a div
document.getElementById("info").innerHTML = this.i;
}

在循环中

if(typeof(bullet) == "undefined"){
var bullet = new projectile(1);
}

bullet.fire();

最佳答案

确实火了!

您看不到进度有两个原因。首先,没有延迟,所以它是瞬间发生的。其次,javascript 在一个同步线程中工作。在线程完成之前,界面 (HTML) 不会刷新。

您可以使用一种 JavaScript 异步执行方法来中断线程。 setInterval 实例:

<div id="info"></div>
<script type="text/javascript">
function projectile(){
this.i = 20;
}

projectile.prototype.fire = function(){
this.i++;
//shows value of this.i in a div
document.getElementById("info").innerHTML = this.i;
}

var i = 3, bullet = new projectile(1), timer;

timer = setInterval(function () {
bullet.fire();
if (--i <= 0) clearInterval(timer);
}, 300);
</script>

In action on fiddle

关于javascript - 在方法调用中更新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19693100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com