2015-09-26 51 views
-1
function x() { 
    var obj1 = new ErrorPrinter(); 
} 
x.prototype = { 
xFunction1 : function() { 
    return obj1.printthis("x"); 
}, 

xFunction2 : function() { 
    return obj1.printthis("y"); 
} 
} 

但是,當我這樣做,它不會工作。初始化頂層對象的目的是爲了不必在每個函數(xFunction1和xFunction2)中重新創建相同的對象。如何初始化構造函數中的新對象,以便其每個函數都可以重用它?

Thx爲這樣一個奇妙的社區,stackoverflow.com。

回答

2

像你這樣聲明變量只會使它在構造函數本身內部可用,而不是原型上的其他函數。另一方面,如果您要在構造函數中設置this.obj1 = ...,那麼在其他原型方法中,當它們在實例上調用時,它將可用作this.obj1

function X() { 
    this.obj1 = new ErrorPrinter(); 
} 
X.prototype = { 
    xFunction1: function() { 
    return this.obj1.printthis("x"); 
    }, 

    xFunction2: function() { 
    return this.obj1.printthis("y"); 
    } 
}; 
相關問題