是否可以使“;值“;Javascript中setTimeout()方法中的self-increase
is it possible to make the "value" self-increase in setTimeout() method in Javascript?
是否可以在Javascript中的setTimeout()方法中使"值"自增?
我的代码看起来像下面的代码块。我在init()方法中有两个for循环,在内部循环中,我有setTimeout方法,使函数"varmyfun=function testFunc(year,value)"每1秒调用一次。
但我仍然有一个叫做"价值"的属性,
1.我希望每次都能增加"价值",
2.或者更改"value",然后在下次调用此函数"var myfun=function testFunc(year,value)"时使用新的"value";
但现在我发现,在函数"var myfun=function testFunc(year,value)"中,我可以从数据集[state]中正确地获得年份,但"value"始终相同。
有没有什么方法可以让"价值"每次都增加或改变?非常感谢您的帮助或回答。
...
init();
function init(){
...
for (var state in dataset) {
var i=0;
var value = 18;
for (var year in dataset[state]) {
i++;
setTimeout( "myfun(" + year + "," + value + ")", i*1000);
}
}
}
var myfun = function testFunc(year, value){
// I want "value" to be increased every time,
// or make change to "value", then use the new "value"
// in the next time invoke this function;
value++;
console.log("year:" + year + ",value:"+value);
}
我认为如果您将setTimeout
与函数回调一起使用(无论如何都应该这样做,因为不建议使用字符串表示法):
function init() {
// ...
for (var state in dataset) {
var i = 0;
var value = 18;
for (var year in dataset[state]) {
i++;
setTimeout(function() {
myfun(year, ++value);
}, i * 1000);
}
}
}
var myfun = function testFunc(year, value) {
console.log("year:" + year + ",value:" + value);
}
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- “var self = this”方法背后的原理是什么?
- 有什么方法可以将类型指定为 self?或解决方法“属性类型不兼容”
- var self=这在原型上定义的方法中多次出现
- 如何使用Tornado'发送javascript代码片段;的self-write方法
- 是否可以使“;值“;Javascript中setTimeout()方法中的self-increase
- jsDocToolkit方法、字段和属性don't在使用self-var时显示