"未捕获的ReferenceError:myVar未定义" OOP Javascript

时间:2014-08-08 19:24:59

标签: javascript meteor

我正在处理3个不同的文件:

  • [根] /client/js/welcome.js
  • [根] /client/js/ups.js
  • [root] /client/js/main.js(我也将其重命名为xxx.last.js)

代码:

//welcome.js
function Welcome(){
    console.log("main");
}

Welcome.prototype.constructor = Welcome;


Welcome.prototype.displayPage = function(page){
    var jQ_page = $("#" + page);
    var title = jQ_page.attr("data-tile");
    $("#main").css("display", "none");
    jQ_page.css("display", "block");
    document.title = title;
};

//ups.js
function Ups(){
    this.query = {};
    this.creteria = {sort: {JB_owner: 0}, limit: 500, skip: 0, fields: {ClusterId: 0}};
    console.log("UPS");
}

Ups.prototype.constructor = Ups;

Meteor.startup(function() {
    var mainObj = new Welcome();        
    var UpsObj = new Ups();

    $(document).ready(function() {
    ...
    ...
    ...   
    });
});

欢迎和Ups是未定义的,我不明白为什么,所有三个文件都被加载,根据meteor Docs应该有效,但它没有,任何提示或帮助?

谢谢!

1 个答案:

答案 0 :(得分:2)

来自Meteor docs

  

在声明函数时,请记住函数x(){}对于JavaScript中的var x = function(){}来说是短暂的。

这意味着您将功能范围限定在文件中,而不是应用程序。试试这个。

Welcome = function () {
    console.log("main");
};

Ups = function () {
    this.query = {};
    this.creteria = {sort: {JB_owner: 0}, limit: 500, skip: 0, fields: {ClusterId: 0}};
    console.log("UPS");
};