Javascript Meteor-如何从其他JS文件调用外部类方法?
我是新来的流星。我一直试图以“面向对象的方式”编写meteor代码,因此我为解析器创建了一个名为Message的对象,并从app.js中调用了它的方法 我想实例化该对象并从我的app.JS调用Message.JS中定义的方法 应用程序结构 应用程序Javascript Meteor-如何从其他JS文件调用外部类方法?,javascript,oop,meteor,instantiation,Javascript,Oop,Meteor,Instantiation,我是新来的流星。我一直试图以“面向对象的方式”编写meteor代码,因此我为解析器创建了一个名为Message的对象,并从app.js中调用了它的方法 我想实例化该对象并从我的app.JS调用Message.JS中定义的方法 应用程序结构 应用程序 |--app.html |--app.js |--app.css |--message.js |--.流星 message.js var Message = { init: function( message ){ /* I
|--app.html
|--app.js
|--app.css
|--message.js
|--.流星
message.js
var Message = {
init: function( message ){
/* Initialization function with some properties */
}
getHash: function() {
return this.hash_table;
}
parseMessage: function(input) {
/* Some Parsing logic */
return(hash_table);
}
}
if (Meteor.isServer) {
var msg = new Message.init(response);
var hash = msg.getHash();
console.log(hash);
}
app.js
var Message = {
init: function( message ){
/* Initialization function with some properties */
}
getHash: function() {
return this.hash_table;
}
parseMessage: function(input) {
/* Some Parsing logic */
return(hash_table);
}
}
if (Meteor.isServer) {
var msg = new Message.init(response);
var hash = msg.getHash();
console.log(hash);
}
使用var声明的变量在Meteor中有一个文件作用域,不能从其他文件中访问。 如果您声明的变量没有var,那么它的作用域会更大,可以从应用程序中看到
Message = {
...
}
如果这不起作用,您可能会对加载顺序有问题。应该在调用app.js中的代码之前加载message.js中的代码。要确保是这样,请将message.js放在/lib文件夹中。此文件夹中的文件总是在加载其他文件之前加载。将message.js添加到名为lib的文件夹中,以便在meteor启动时首先加载它。然后从消息中删除var,使其成为全局的。谢谢您的回复。但将消息声明为不带var的全局变量是行不通的。如何从app.js导入类?@mariudarila在主描述中添加了app结构。我认为这是加载顺序的问题。尝试将消息js添加到lib文件夹。顺便说一句,您不能实例化一个没有函数的对象,因此new Message.init()将不起作用。Try var msg=Message.init(响应);或者,如果需要多个消息对象message=function(message){this.message=message}和var msg=newmessage(response);