我想从另一个函数访问带有值的var。是否可能。
<script type="text/javascript">
var first = {
myFirst: function(){
var w= 90;
var q=12;
}}
var second= {
mySecond: function(){
first.myFirst.w
}}
</script>
答案 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.