如何通过JavaScript访问具有相同名称的某些变量?

时间:2015-12-17 12:57:24

标签: javascript actionscript-3 actionscript

我有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()

1 个答案:

答案 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
    }
}