如何从构造函数内部返回构造函数的对象

时间:2016-11-20 07:33:00

标签: javascript constructor prototype

如何从构造函数内部返回构造函数中的对象?

 function consFunc() {
  
    this.flag = 'someFlag';
    this.pol = 'somePole';        

    }

    consFunc.prototype.foo = function(){      
     console.log(this.flag);
    }

    var obj = new consFunc();
    obj.foo();

这是我通常用构造函数创建对象的方式。如何从构造函数内部返回对象,所以我不需要编写var obj = new consFunc();我只需要根据需要调用obj.foo();,是否可能?

3 个答案:

答案 0 :(得分:1)

如果你想拥有一个带有简单功能的对象,你可以简单地写

var consObj = {
  flag: 'someFlag',
  pol: 'somePole',       
  foo: function() { console.log( this.flag ); }
}

consObj.foo() // 'someFlag'

答案 1 :(得分:0)

您可以将构造函数包装在另一个函数中,并从该函数返回new consFunc();



function obj() {
  function consFunc() {
    this.flag = 'someFlag';
    this.pol = 'somePole';
  }
  consFunc.prototype.foo = function () {
    console.log(this.flag);
  }      
  return new consFunc();
}
// now use it
obj().foo()




答案 2 :(得分:0)

如果你需要某种单身人士:

var obj = (function (){

    var flag = 'someFlag';
    var pol = 'somePole';   

    function foo(){      
        console.log(flag);
    }

    return {
      foo: foo
    };
})();

obj.foo();