在JavaScript中使用“ this”使用方法创建对象

灰色将军

我是一位精通C#的程序员,并且对HTML和Javascript有一点经验,但是我似乎无法弄清楚对象。

我正在尝试创建一个循环,该循环将不断更新,直到计数器达到5,然后停止循环。但在Update方法中,计数器= NaN。

这是我的确切代码。

function LoginScreen() {
    this.IntervalID = null;
    this.counter = 0;

    this.Start = function () {
        this.IntervalID = setInterval(this.Update, 60 / 1000);
    };

    this.Stop = function () {
        clearInterval(this.IntervalID);
    };

    this.Update = function () {

        this.counter++;
        alert(this.counter);

        if (this.counter > 5) this.Stop();
    };

}

LS = new LoginScreen();
LS.Start();
克里斯·肯彭(Chris Kempen)

问题是内部范围this的你Start()Stop()Update()功能。在这些函数中,this指的是函数,而不是您的LoginScreen对象。

为了解决这些问题,我喜欢使用一个小self变量来解决范围问题。这样,无论引用self变量是什么,都将使用该对象。这就是我的意思:

function LoginScreen() {

    // add this for scope fun...
    var self = this;

    this.IntervalID = null;
    this.counter = 0;

    this.Start = function () {
        self.IntervalID = setInterval(self.Update, 60 / 1000); // updated...
    };

    this.Stop = function () {
        clearInterval(self.IntervalID); // updated...
    };

    this.Update = function () {
        self.counter++; // updated...
        alert(self.counter); // updated...

        if (self.counter > 5) self.Stop(); // updated...
    };
}

LS = new LoginScreen();
LS.Start();

希望这是有道理的!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用方法创建对象

来自分类Dev

在golang中创建对象后,如何确保使用方法?

来自分类Dev

使用jQuery使用方法发布对象

来自分类Dev

如何使用可以使用方法的 ArrayList 创建动态对象?

来自分类Dev

在Java中使用方法,对象之间如何交互?

来自分类Dev

无法对相同类的对象使用方法

来自分类Dev

如何使用方法参数访问对象?

来自分类Dev

使用方法修改对象属性

来自分类Dev

在Javascript中使用Factory创建对象

来自分类Dev

在 JavaScript 中使用 for 循环创建对象数组

来自分类Dev

使用方法创建超类

来自分类Dev

使用方法创建超类

来自分类Dev

Python创建类和使用方法

来自分类Dev

如何在对象中使用方法返回具有动态值的对象?

来自分类Dev

Java GUI设计:使用对象还是使用方法?

来自分类Dev

在JavaScript中使用对象数组

来自分类Dev

Javascript,使用vars创建对象的最佳方法

来自分类Dev

使用jinja / javascript动态创建方法/对象

来自分类Dev

如何在scala中的对象内部使用方法?

来自分类Dev

如何使用方法使其更加面向对象

来自分类Dev

使用方法更改ArrayList中的对象并返回

来自分类Dev

Java使用方法值减去对象字段值

来自分类Dev

使用方法更新 Rails 中的关联对象

来自分类Dev

在JavaScript中使用[apply]和[new]创建对象?

来自分类Dev

FizzBuzz在Java中使用方法

来自分类Dev

在traitsui工厂中使用方法特征

来自分类Dev

在php oop中使用方法mysqli

来自分类Dev

如何使用方法作为值创建HashMap?

来自分类Dev

使用方法或类创建文本框