2013-02-23 51 views
0

我想從其他函數訪問var w值。可能嗎。如何從其他函數獲取屬性

<script type="text/javascript"> 
var first = { 
myFirst: function(){ 
var w= 90; 
var q=12; 
}} 


var second= { 
mySecond: function(){ 
first.myFirst.w  
}} 
</script> 

回答

3

通過這種方式,因爲它在myFirst局部範圍定義你不能訪問w。你可以這樣做:

var first = { 
    myFirst: function(){ 
    first.myFirst.w = 90; 
    var q=12; 
    } 
}; 

var second= { 
    mySecond: function(){ 
    alert(first.myFirst.w); 
    } 
}; 

first.myFirst(); 
second.mySecond(); //alerts 90 

以這種方式w將作爲功能myFirst的屬性,如果你想將其添加爲first性質,用途:

var first = { 
    myFirst: function(){ 
    this.w = 90; 
    var q=12; 
    } 
}; 

var second= { 
    mySecond: function(){ 
    alert(first.w); 
    } 
}; 

first.myFirst(); 
second.mySecond(); //alerts 90 
0

不,這不可能,因爲w的範圍在功能範圍內。一旦函數被調用,w不再存在。在技​​術上你需要調用first.myFirst()。w;

爲了得到那個工作,你可以這樣做,而不是:

var first = { 
    myFirst: function(){ 
    var w= 90; 
    var q=12; 
    return { w : w }; 
    } 
} 

first.myFirst().w // now works. 
+0

是啊,剛剛修好了,對不起。感到困惑(不幸的是,在JavaScript中很容易做到)。 – samjudson 2013-02-23 09:30:37

相關問題