我有3个具有相同名称(值)的变量。我想从内部函数(f2)读取所有内容。 帮我编写下一个案例的代码(参见警报块)
var value = "global"
function f1() {
var value = "external";
function f2() {
var value = "internal";
alert(any code 1?) // global
alert(any code 2?) // external
alert(any code 3?) // internal
}
}
例如ActionScript的工作原理:
var _value = "global"
function f1() {
var _value = "external";
function f2() {
var ext=_value
var _value = "internal";
trace(_root._value) // works: global
trace(ext) // works: external
trace(_value) // works: internal
}
f2()
}
f1()
通过对象激活或ActionScript(但我知道JavaScript拒绝访问此对象):
var _value = "global"
function f1() {
var _value = "external";
function f2() {
_value // do link to object activation (by f1)
var _value = "internal";
trace(_root._value) // works: global
trace(this._value) // works: external
trace(_value) // works: internal
}
f2()
}
f1()
答案 0 :(得分:1)
相同的名称将被覆盖。但对于全球,我猜你可以使用window.
:
var value = "global"
function f1() {
var value = "external";
function f2() {
var value = "internal";
alert(window.value) // works: global
alert(any code 2?) // no idea: external
alert(value) // works: internal
}
}
值得注意的是,f2()
只能从f1()
访问!正如responsive sprites / percentages所述,只需进行一些小改动即可访问所有内容:
var value = "global"
function f1(value) {
var global_value = value;
var value = "external";
function f2(value) {
var internal_value = value;
var value = "internal";
alert(window.value) // works: global
alert(global_value) // works: global
alert(internal_value) // works: external
alert(value) // works: internal
}
}