gpt4 book ai didi

javascript - 构造函数中未定义数组,类型错误 : Cannot read property '0' of undefined

转载 作者:行者123 更新时间:2023-12-03 05:04:02 25 4
gpt4 key购买 nike

我的代码从构造函数 ColorDispatcher 创建一个调度程序。 window.onload之后,dispatcher.hoverOutHandler会在1.5秒后定期调用。当调用changeBGColor时,出现标题中描述的typeError;但我真的不明白为什么。

var ColorDispatcher = function() {
this.changeColorTimerID = 0;
this.rgbColorArray = new Array(0, 0, 0);
};

ColorDispatcher.prototype = {
hoverOutHandler: function() {
this.changeColorTimerID = window.setInterval(this.changeBGColor, 1500);
},
changeBGColor: function() {
//something went wrong here.
alert(this.rgbColorArray[0]);
},

};
var dispatcher = new ColorDispatcher();
window.onload = dispatcher.hoverOutHandler();

最佳答案

更改以下行:

 this.changeColorTimerID = window.setInterval(this.changeBGColor.bind(this),1500); 

setInterval 在窗口范围内调用了该函数,因此找不到数组。使用.bind,您可以将函数绑定(bind)到作用域(在本例中为this)。

关于javascript - 构造函数中未定义数组,类型错误 : Cannot read property '0' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42089235/

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