2012-07-05 201 views
0

可能很明顯,但仍令我困惑。從另一個對象的原型調用對象原型

無論如何可以從另一個對象的原型中調用另一個對象內的原型嗎?

當前設定:

function obj1() { 
    this.myVar = 1; 
} 

obj1.prototype.helloWorld = function() { 
    alert("Hello world!"); 
} 

function obj2() { 
    this.myVar = 2; 
} 

obj2.prototype.nonSense = function() { 
    console.log(this.myVar); 
} 

Obj2原型nonSense以某種方式實現原型helloWorldObj1 **
2.Obj2原型nonSense莫名其妙訪問Obj1變量myVar? ?

+1

我不跟着你想要做什麼......你可以從任何地方調用'helloWorld'法'obj1.prototype.helloWorld( )'。 – 2012-07-05 10:48:38

+0

這實際上解決了第一個問題。出於某種原因,當我打電話時,我的思想拒絕將「原型」這個詞作爲名稱的一部分。我幾乎可以肯定,這件事很簡單。 – budwiser 2012-07-05 11:02:31

回答

0

我真的不知道你想做什麼,但你可以調用helloWorld方法直接:

obj1.prototype.helloWorld(); 

如果你有一個實例obj1,你可以擺脫prototype的:

var myObj1 = new obj1(); 
myObj1.helloWorld(); 

訪問myVarobj1外,你需要呼籲obj1 -直到你調用聲明它的函數,0纔會存在。最有可能的是,您需要使用new運算符來調用obj1實例,如上所示。然後,您可以訪問myVar就像任何其他財產:

console.log(myObj1.myVar);