gpt4 book ai didi

object - JavaScript:对象[全局对象]没有方法

转载 作者:行者123 更新时间:2023-12-02 17:31:26 25 4
gpt4 key购买 nike

我在这里看到了类似的问题,但没有一个解决方案可以解决我的问题。我正在尝试扩展 PixiJS 的 BitmapText 类来创建通用文本对象:

OS7.Text = function(string, x, y)
{
PIXI.BitmapText.call(this, string, {font:"12px Chicago"});
this.position.x = x;
this.position.y = y;
}

OS7.Text.prototype = Object.create( PIXI.BitmapText.prototype );
OS7.Text.prototype.constructor = OS7.Text;

然后将其扩展为每秒更新一次的简单时钟:

OS7.Time = function()
{
OS7.Text.call(this, "00:00 AM", 571, 5);
this.position.x = 571 - this.textWidth;
this.updateTime();
this.timeFunc = this.updateTime();
window.setInterval(this.timeFunc, 1000);
};

OS7.Time.prototype = Object.create(OS7.Text.prototype);
OS7.Time.prototype.constructor = OS7.Time;

OS7.Time.prototype.updateTime = function()
{
this.prevText = this.text;
this.date = new Date();
this.hour = this.date.getHours();
this.minute = this.date.getMinutes();
this.zero = "";
this.ampm = "AM";

if ( this.hour > 12 )
{
this.hour -= 12;
this.ampm = "PM";
}

if ( this.hour === 0 )
{
this.hour = 12;
}

if ( this.minute < 10 )
{
this.zero = "0";
}

this.setText( this.hour + ":" + this.zero + this.minute + " " + this.ampm );

if ( this.prevText !== this.text )
{
this.updateText();
}
};

无论如何,我都会收到错误Object [object global] has no method updateText,即使该函数位于PIXI.BitmapText中。更不用说整个 timeFunc 事情似乎是多余的,但在此之前我得到了错误 Object [object global] has no method updateTime

为什么我会收到此错误?

最佳答案

这一行看起来很可疑:

this.timeFunc = this.updateTime();

timeFunc 将是 undefined,因为您正在调用 updateTime,并且它不会返回任何内容。此外,从计时器调用的函数将具有 window,而不是绑定(bind)到 this 的对象。如果要保留对象引用,则需要使用bind

this.timeFunc = this.updateTime.bind(this);

关于object - JavaScript:对象[全局对象]没有方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23023361/

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