使用singleton javascript类加载运行的自动方法

使用singleton javascript类加载运行的自动方法,javascript,class,singleton,Javascript,Class,Singleton,我有一个javascript类,定义如下: myClass = { var1:0, var2:0, initVars: function() {}, method1: function() {}, method2: function() {} } 现在这个类在加载时立即实例化。(我相信)这门课只有一个例子 现在让我们假设我想要一个函数myClass.initVars()在类准备好后立即运行,这可能吗?因为现在我在定义类的下面有一行 myClass.ini

我有一个javascript类,定义如下:

myClass = {
    var1:0,
    var2:0,
    initVars: function() {},
    method1: function() {},
    method2: function() {}
}
现在这个类在加载时立即实例化。(我相信)这门课只有一个例子

现在让我们假设我想要一个函数myClass.initVars()在类准备好后立即运行,这可能吗?因为现在我在定义类的下面有一行

myClass.initVars();
因此,一旦定义完这个类,它就会转到下一个命令


但是我是否可以删除类定义下面的这一行并让它自动运行?

这应该可以满足您的需要。在自动执行的函数中创建对象,并在其中调用initVars方法,然后返回新创建和初始化的对象

myClass = (function(){
   var that = {
      var1:0,
      var2:0,
      initVars: function() {},
      method1: function() {},
      method2: function() {}
   };
   that.initVars();
   return that;
})();

JavaScript没有“类”。您只需定义一个对象。不,没有别的办法。您可以立即调用
initVars
,然后从该方法返回对象并将其分配给
myClass
。根据定义,javascript可能没有class关键字,但我强烈反对javascript没有“类”的说法。在这里,类的定义是“类是一个用于创建自身实例的蓝图的构造”,并且Javascript“对象”满足了标准。我想说javascript确实有“类”。撇开观点不谈,谢谢你的回答是的,我想你可以争论一下定义。我明白了。但在任何情况下,您都是直接创建对象,而不是构造函数。