JavaScript如何从作为参数传递的对象中访问变量?

时间:2015-06-06 09:49:00

标签: javascript node.js

我可能有一个非常简单的问题,但我无法解决这个问题。我会发布一些由于某种原因无法运行的代码片段:

//authentication_handler.js
var new_user = server.authenticated_users.add_user(new User(world));

//user.js
function User(world) {
personBody = createPlayerBody(100, 100, 8, 8, false, true, world);
exports.TheBody = personBody;
}

//player_data_handler.js
module.exports = function(server, client) {
var theUser = server.authenticated_users.find_user(client.uuid);
if (theUser != null) {
    var playerData = JSON.stringify({
        x: theUser.TheBody.position.x, //this line throws the error below
        y: theUser.TheBody.position.y
    });
    server.authenticated_users.each_other(theUser, function(user) {
        server.send_id_message(user.client, 5, playerData);
    });
}
};

我得到的错误是:

  

无法阅读物业'位置'未定义的

我仍然不熟悉JavaScript,但我不知道为什么这个人体会出现问题。变量并没有一直传递给" player_data_handler.js"。我尝试过更多方法,但没有一种方法可行。非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:2)

exports用于导出模块的各个部分。如果您想在对象中添加内容,请使用this

而不是exports.TheBody = personBody;尝试this.TheBody = personBody;