var objectTest=
{
test1: function()
{
val1 = 1;
},
// hows accessing the
test2: function()
{
alert(val1);
}
};
objectTest.test2();
-2
A
回答
4
通过不使用变量放在不同的(全球)范围前缀var
尝试,而不是:
test1: function() {
var val1=1;
},
由于@Pekka指出,您的示例(上述)需要先拨打objectTest.test1();
(创建val1
),否则您会收到错误消息。如果您想到从两地访问变量,那么你应该宁可使用对象属性(如@patrick DW建议)不添加到全局范围
objectTest.test1();
objectTest.test2(); //Shows: Alert-1
alert(val1); //Shows: Alert-1
val1=2;
objectTest.test(2); //Shows: Alert-2
1
这不可能。两个功能不能同时运行,因此共享本地范围是不可能的。您必须将val1
定义为该对象的成员。
0
取决于你最终想做什么。你可以把它的对象的公共成员:
var objectTest=
{
val1: 'someDefault',
test1: function()
{
this.val1 = 1;
},
// hows accessing the
test2: function()
{
alert(this.val1);
}
};
objectTest.test1();
objectTest.test2();
这当然改变你原来的代码。你实际需要做什么取决于你的情况。
或者这样:
例子:http://jsfiddle.net/wqr6W/1/
var objectTest=
{
val1: 'someDefault',
test1: function()
{
this.val1 = 1;
},
// hows accessing the
test2: function()
{
this.test1();
alert(this.val1);
}
};
objectTest.test2();
0
添加另一种答案,以便更直接地回答这个问题。
如果你实际上是在谈论一个当地变量的函数,简单的答案是,你可以无法访问它除非你传递一个函数出具有可变的功能,这使得参考到变量。
这被称为创建闭包。
var objectTest=
{
test1: function()
{
var val1 = 1;
return {getVal:function() {
return val1;
}};
},
// hows accessing the
test2: function()
{
alert(this.test1().getVal());
}
};
objectTest.test2();
所以里面test2
可以调用test1()
函数,它返回一个包含一个函数,它引用局部变量的对象。
这个(或类似的东西)是引用一个函数中另外一个不可访问的局部变量所需要的。
相关问题
- 1. 函数不能访问另一个函数中的变量
- 2. 如何在另一个函数中访问函数变量
- 3. 从另一个函数访问函数的作用域变量
- 4. 在这个脚本访问函数的变量从另一个功能
- 5. 如何在类中的另一个函数中访问函数的变量?
- 6. 从Javascript中的另一个函数访问本地变量与闭包?
- 7. 在Xcode中访问属于另一个函数的变量
- 8. 函数外的访问函数变量?
- 9. 如何在另一个函数中访问全局变量
- 10. 不能在另一个函数访问变量内部对象常量
- 11. jQuery的 - 从另一个函数变量调用函数变量
- 12. 不能访问函数内的变量
- 13. 本地变量调用一个函数
- 14. 如何访问另一个类中的函数内的变量
- 15. 在一个函数中的模态不能从另一个函数中访问
- 16. 如何从另一个函数访问一个变量而不在原始函数中返回该变量?
- 17. 获取访问另一个函数的变量
- 18. 从另一个函数的作用域访问变量?
- 19. 如何访问另一个函数内的变量?
- 20. 从另一个php文件的类函数访问变量
- 21. 如何访问另一个函数内的变量jquery
- 22. 从另一个类被调用的函数中访问变量
- 23. 在一个函数中定义一个变量,并访问在另一个
- 24. 为什么我的函数不能在封闭函数中访问变量?
- 25. 在另一个函数中访问var
- 26. sh脚本在一个函数中访问全局变量
- 27. 如何从另一个函数访问变量?
- 28. 蟒蛇访问另一个函数变量错误
- 29. 函数访问变量
- 30. Xposed访问变量函数
你是说它正在访问它吗? – 2011-01-11 03:32:05
这个问题根本不清楚。 – Pointy 2011-01-11 03:39:01