可以用这种方式在javascript中初始化一个对象吗?

Man*_*tto 4 javascript initialization object

我想在javascript中初始化一个对象直接调用属于它的方法:

  var obj = (function(){
      return{
          init: function(){
              console.log("initialized!");
              return this;
          },
          uninit: function(x){
              console.log("uninitialized!");
          }
      };
  }).init();

  //later
  obj.uninit();
  obj.init();
Run Code Online (Sandbox Code Playgroud)

这个具体的例子不起作用,有类似的东西吗?

Tom*_*tel 7

编辑:init()回归this,谢谢Guffa.

您只是定义了一个匿名函数,但实际上并没有调用它.要立即调用它,请添加一对括号:

var obj = (function(){
  return{
      init: function(){
          console.log("initialized!");
          return this;
      },
      uninit: function(x){
          console.log("uninitialized!");
      }
  };
})().init();
Run Code Online (Sandbox Code Playgroud)

  • 此外,`init`函数需要返回`this`,以便在`obj`变量中放置一些东西. (3认同)