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>
4

2 回答 2

3

这样您就无法访问w,因为它是在myFirst. 您可以执行以下操作:

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
于 2013-02-23T09:25:14.577 回答
0

不,这是不可能的,因为 w 的范围在函数内。一旦函数被调用,w 就不再存在了。

此外,从技术上讲,您需要调用 first.myFirst().w;

为了让它工作,你可以这样做:

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

first.myFirst().w // now works.
于 2013-02-23T09:25:26.763 回答