2016-11-20 132 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();