JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了JavaScript – “this”的所有者大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我按照 tutorial创建了一个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实例?

http://www.quirksmode.org/js/this.html

我已经包含了硬编码值行和不起作用的“this”行.

谢谢,

杰兰特

解决方法

如果要使此属性保持一致,则应绑定要调用的函数.

例如,

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

这样,内部函数的this将与外部函数的函数相同.

大佬总结

以上是大佬教程为你收集整理的JavaScript – “this”的所有者全部内容,希望文章能够帮你解决JavaScript – “this”的所有者所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: