首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript单例函数不起作用

Javascript单例函数不起作用
EN

Stack Overflow用户
提问于 2013-05-16 10:21:36
回答 1查看 107关注 0票数 1

我想学一点“高级”的Javascript,所以我想我可以做一个简单的打字游戏。不幸的是,我很早就被卡住了,我认为这是一个愚蠢的错误,我完全没有抓住要点。下面是我的代码:

代码语言:javascript
运行
复制
var TypingTest = new function() {

    this._playing = false;

    this.Play = function() {
        this._playing = true;
    }
    this.Stop = function() {
        this._playing = false;
    }

    $(document).keydown(function(e) {
        if(this._playing) {
                    // Reference point
            console.log(e);
        }
    });
}

问题是,无论我将_playing变量实例化到什么位置,“参考点”都永远不会到达。this._playing总是undefined,我一点也不知道为什么。它是作用域吗?这是一种保护措施吗?这可难倒了我!

编辑:我已经导入了jQuery并正常工作。如果我取出if块,游戏就能正常运行。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-16 10:24:27

问题是您的事件超出了范围,事件中的this引用的是文档而不是对象。可以通过在局部变量that中缓存对对象的引用来修复此问题

代码语言:javascript
运行
复制
var TypingTest = new function() {
    ...
    var that = this;
    ...
    $(document).keydown(function(e) {
        if(that._playing) {
                    // Reference point
            console.log(e);
        }
    });
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16578001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档