2013-03-10 146 views
0

這不工作,我不知道如何解決它如何從現有的對象創建一個新的對象?

function bar() {...} 

function foo() { 
    this = new bar(); 

    this.newfunction = function() {...}; 
    this.newvalue = "foobar"; 
} 

var foobar = new foo(); 

由於提前,

+1

什麼是你想要做什麼呢? – 2013-03-10 20:28:58

回答

0

您是否試圖從bar繼承?然後,你可以借使用call(或apply)它的構造和它的所有自己的屬性:

function bar() {...} 

function foo() { 
    bar.call(this); 
    this.newfunction = function() {...}; 
    this.newvalue = "foobar"; 
} 

var foobar = new foo(); 
1

不要使用this代表另一個對象。

function bar() {...} 

function foo() { 
    var bar = new bar(); 

    bar.newfunction = function() {...}; 
    bar.newvalue = "foobar"; 
} 

var foobar = new foo(); 
+0

'bar'不是構造函數 – defunct 2013-03-10 20:35:56

+1

@defunct,你在做什麼? – Starx 2013-03-10 20:36:53

相關問題