Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor函数跨所有.js项目文件定义_Javascript_Meteor - Fatal编程技术网

Javascript Meteor函数跨所有.js项目文件定义

Javascript Meteor函数跨所有.js项目文件定义,javascript,meteor,Javascript,Meteor,假设我有一个函数,返回客户端java脚本文件中播放器的特定id: var playerId = function () { return Player.findOne({current:true})._id; }; 然而,随着项目的发展,我开始将代码分解成各种.js文件(player.js、game.js、round.js等)。当我想重用该函数时,问题就出现了。我无法从其他.js文件调用playerId()函数。现在,我只是将这个函数复制并粘贴到每个使用它的.js文件中。有没有一个地方

假设我有一个函数,返回客户端java脚本文件中播放器的特定id:

var playerId = function () {
    return Player.findOne({current:true})._id;
};

然而,随着项目的发展,我开始将代码分解成各种.js文件(player.js、game.js、round.js等)。当我想重用该函数时,问题就出现了。我无法从其他.js文件调用playerId()函数。现在,我只是将这个函数复制并粘贴到每个使用它的.js文件中。有没有一个地方我可以定义这个函数,这样每个.js文件都可以使用它

您可以在另一个文件中使用其.js名称来调用该函数

例:

player.js

var player = {
 init: function() {
       player.playerId();
 },
 playerId : function () {
        return Player.findOne({current:true})._id;
 }
}
$(document).ready(function () {
        player.init();
});
game.js

game: function(){
      var p = player.playerId()
}

除了给出修复文件依赖性的明显提示之外,我能给出的最好建议是使用一个名为的优秀库。这不仅会自动处理文件依赖顺序和下载,而且还将保持这些类型的实用程序函数的全局范围干净。Require还将迫使您养成更好的编程习惯,这就是我提倡学习/使用Require来解决您的问题的原因。

正确的答案只是删除您希望导出的变量声明语句中的var。


另外,请按照以下规则确保加载顺序正确:

Require JS不适用于Meteor AFAIK,因为Meteor以不同的方式加载文件