小编Mzy*_*Bwy的帖子

js - '间接'调用方法时'this'未定义

我的目标是从函数表中调用一个函数来概括命令处理(即间接)。不幸的是,thisundefined这样调用的。

function Server() {
    this.sessions = {};

    server = this;
    this.handlers = {
        "dummy" : server.dummyCommandHandler,
    };
}

Server.prototype.dummyCommandHandler = function() {
    print (this.sessions);
}

Server.prototype.run = function ( command ) {
    print (this.sessions); // [Object object]
    this.handlers[command.name](); // prints 'undefined'
    this.dummyCommandHandler(); // prints '[Object object]'
}

s = new Server();
s.run({ "name": "dummy" });
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用 javascript,我以为我已经确定了范围,但显然它比看起来更复杂。this使用server变量别名服务器没有帮助(我认为可能thishandlers对象内易手)。this间接调用函数时的作用域是什么?

javascript rhino

4
推荐指数
1
解决办法
1187
查看次数

标签 统计

javascript ×1

rhino ×1