Meteor JS 全局函数

问题描述 投票:0回答:2

使用 Meteor.js 我想使用包含其他函数的全局函数:

BIG = function (){

     this.init = function ()
     {
        //do something
     }

     this.addSomething = function (param1, param2)
     {
        //do something else
     }

}

现在我调用这个函数:

 BIG.init();
 BIG.addSomething(param1, param2);

但这不起作用,控制台打印“BIG.init 不是函数”。 当我在控制台中输入“BIG”时,它会打印回“function BIG()”,这意味着 Meteor 识别出 BIG 是一个函数,但不识别 BIG 内的子函数。

对我如何实现这一目标有任何帮助吗?

谢谢。

javascript function meteor module-pattern
2个回答
1
投票

语法,应该是这样(根据你当前的语法):

new BIG().init();
new BIG().addSomething();

你看,你需要使用

new BIG
关键字构造一个
new
实例来正确设置
this
内部的
BIG
上下文,然后它将返回它的方法供你执行。

但我怀疑这实际上是你想要做的。您确定不想像下面这样声明一个对象文字吗:

BIG = {

     init: function ()
     {
        //do something
     }

     addSomething: function (param1, param2)
     {
        //do something else
     }

}
BIG.init();
BIG.addSomething();

0
投票

为什么不使用此函数返回的对象? 即:

var big = function() {

    return {
        init: function() {
            alert(1);
        },

        addSomething: function(param1, param2) {
            //do something else
        }
    }
}

BIG = big();

BIG.init();
© www.soinside.com 2019 - 2024. All rights reserved.