当前位置: 首页 > 面试题库 >

JavaScript-“ this”的所有者

周鸿云
2023-03-14
问题内容

我遵循了有关创建JavaScript秒表,并试图将其扩展为可与多个秒表(一个类的多个实例)一起使用。我遇到的问题是,当我试图在时钟滴答声中显示当前值时,我需要使用“this”对类实例进行硬编码,这是行不通的(在我使用console.log的那一行中)。我已将代码缩减到最低限度以尝试理解这一方面,并​​粘贴了以下内容:

function Timer(){
    var time1 = null;
    var time2 = null;
    var timeLoop = null;

    function getTime(){
        var day = new Date();
        return day.getTime();
    }

    this.start = function(){
        time1 = getTime();

        timeLoop = setInterval(function(){
            time2 = getTime();
            console.log(_Timer.duration());
            //console.log(this.duration());
        },500);
    }

    this.duration = function(){
        return (time1 - time2) / 1000;
    }

}

我认为以下链接描述了我的问题,但我对它的理解不足以在此处应用。问题是由于所有者是this.start而不是仅此而引起的,我如何修改代码以使其与Timer的任何实例一起使用?

我已经包括了硬编码的值行和行不通的“ this”行。

谢谢,


问题答案:

如果要使this属性一致,则应绑定正在调用的函数。

例如,

setInterval(function() { /* code here */ }.bind(this), 500)

这样,this内部功能的便与外部功能的相同。



 类似资料:
  • 问题内容: 我目前正在研究jQuery 对于以下两个示例: 请注意,在第一个示例中,我们用于在每个元素内附加一些文本。在第二个示例中,我们在重置表单时直接使用。 似乎比经常使用。 我的猜测是,在第一个示例中,是将每个元素转换为可以理解功能的jQuery对象,而在第二个示例中,可以直接在表单上调用它。 基本上,我们需要特殊的仅jQuery功能。 这个对吗? 问题答案: 是的,只有在使用jQuery

  • 本文向大家介绍我所理解的JavaScript中的this指向,包括了我所理解的JavaScript中的this指向的使用技巧和注意事项,需要的朋友参考一下 前言 JS 中的 this 指向是一个经常被问到的问题,网上也有很多文章是关于 this 的。本文整理一下我理解下的 this 以及一些我比较疑惑的关于 this 问题。 this 指向 有几个 this 的指向问题是几乎每篇文章都会说的,比如

  • 本文向大家介绍Javascript的this用法,包括了Javascript的this用法的使用技巧和注意事项,需要的朋友参考一下 this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, 随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。 下面分四种情况,详细讨论this的用

  • 如果我只运行几个线程,其中一些线程调用静态函数,而另一些线程创建新实例。我希望在每次对的调用中获得当时实例的实际数量。 代码中的两个选项有区别吗? 如果我锁定“”,这是否意味着在构造函数退出synchronized块之前,我不能调用(假设我没有在getCount()上编写synchronize)。 如果我在代码中的某个地方执行同步块,它是只锁定同步块还是锁定所有“”代码? 从这里开始编辑:谢谢大家

  • 问题内容: 我有一个使用该函数并调用另一个方法的方法。在初始加载时,方法2可以正常工作。但是,超时后,我得到一个错误,它是未定义的。我在这里做错了什么? 例如: 问题答案: 问题是导致javascript使用全局范围。本质上,您是在调用类,而不是从中调用。相反,您只是在告诉您使用没有特定作用域的函数。 要解决此问题,您可以将函数调用包装在另一个引用正确变量的函数调用中。它看起来像这样: 可能是因为

  • 本文向大家介绍javascript中的this详解,包括了javascript中的this详解的使用技巧和注意事项,需要的朋友参考一下 This对象在js中就一直是个坑货,很难判断它到底指向什么,而我们由于来自C++或者python的self的经验,又常常会犯这一类的错误。接下来就详细地讲一下this对象的归属。 rule1:全局环境的this javascript的环境天生就由函数来决定,在js