2016-11-20 127 views
0

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

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();,这有可能吗?

+0

不清楚你在问什么。如果它不是'new consFunc();',那么'obj'会是什么? – charlietfl

+0

这只是例如 – Mohsin

+0

这并不能解释太多。 – charlietfl

回答

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()

1

如果你想与它的简单函数的对象,你可以简单地写

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

consObj.foo() // 'someFlag' 
+0

你没有注意到他在使用原型来添加一个方法吗?你的回答没有多大帮助 – HenryDev

+0

@HenryDev我不认为他想要一个原型,查看我问过他究竟需要什么的评论 –

+0

是的,我和你在一起,但是你有没有看到他在他的一开始他使用原型的代码? – HenryDev

0

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

var obj = (function(){ 

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

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

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

obj.foo();