如何从其他功能获得财产

时间:2013-02-23 09:22:16

标签: javascript jquery

我想从另一个函数访问带有值的var。是否可能。

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


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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

不,那是不可能的,因为w的范围在函数内。调用该函数后,w不再存在。

另外,从技术上讲,你需要先调用first.myFirst()。w;

为了实现这一点,你可以这样做:

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

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