gpt4 book ai didi

javascript - setInterval函数无法读取数组

转载 作者:行者123 更新时间:2023-12-02 19:28:00 27 4
gpt4 key购买 nike

Possible Duplicate:
Pass correct “this” context to setTimeout callback?

我的小脚本有问题。

function test() {
this.arr = new Array('a','b','c');
this.func = function() {
//Do something with this.arr. But it's undefined.. WHY???
}
this.Start = function() {
this.Interval = setInterval(this.func, 1000);
}
}

var Test = new test();
Test.Start();

当我尝试对“func”中的数组执行任何操作时,它不断告诉我该数组未定义。为什么?

最佳答案

您得到了错误的this引用,请尝试:

function Test() {
this.arr = new Array('a','b','c');
this.func = function() {
console.log(this.arr);
};
this.start = function() {
var fun = this.func.bind(this);
this.interval = setInterval(fun, 1000);
};
}

var test = new Test();
test.start();

如果您需要更多信息,这篇关于this的文章非常有趣:Function invocation and this

另外,请注意,我更改了一些符号的大小写。请记住,用作构造函数的函数以大写字母开头,变量和方法使用小写字母。

关于javascript - setInterval函数无法读取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819497/

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