2014-05-21 70 views
0

我需要你的幫助。如何使內部類的屬性採用父類屬性的值?

我的問題是如何使內部類屬性有父類的屬性

function drawSvg(element) 
{ 
    this.x= 0; 
    this.y=0; 
    this.strockeColor="#FFF"; 
    this.fillColor= "#000"; 
    this.darwCircle= function() 
    { 
     this.x = parent.x;//here what I have to do to make the x of darwCircle take the vale of drawSvg x 
    } 

} 

的價值觀在我上面的例子,我不知道的是,我應該把這樣做的代碼?

+0

'strockeColor'可能是一個錯字... –

+0

我希望'darwCircle'不是一堂課?你打算如何使用這些代碼? – Bergi

+0

'drawCircle'是'drawSvg'的一種方法,所以'this'在兩個上下文中都是相同的。 –

回答

1

這樣做的一種常見的方式是,包括:

父範圍

var self = this; 

,並在孩子的範圍,你可以寫

this.x = self.x; //now you can take the value of the parent 

和更多的澄清這裏是完整示例

function drawSvg(element) 
{ 
    this.x= 200; 
    this.y=0; 
    this.strockeColor="#FFF"; 
    this.fillColor= "#000"; 
    this.lineWidth =10; 
    this.set = function(x, y, strockColor, fillColor, lineWidth) 
    { 
     this.x= x; 
     this.y= y; 
     this.strockeColor= strockColor; 
     this.fillColor= fillColor; 
     this.lineWidth= lineWidth; 
    } 

    self = this;// look here 

    this.darwCircle= function() 
    { 
     this.x = self.x+2000; // look here 
    } 
} 

var d = new drawSvg("ddfds"); 
var dc = new d.darwCircle(); 
console.log(dc.x); 
+0

你應該注意到'new d.darwCircle();'不應該做任何事情。 – Bergi