代码之家  ›  专栏  ›  技术社区  ›  Manuel Bitto

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

  •  4
  • Manuel Bitto  · 技术社区  · 16 年前

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

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

    1 回复  |  直到 16 年前
        1
  •  7
  •   Tom Bartel    16 年前

    编辑: init() 退货 this

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

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