【发布时间】:2016-03-23 22:57:16
【问题描述】:
我有 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()
【问题讨论】:
-
我认为您应该为它们使用不同的 nane。内部变量或窄范围变量应具有较短的名称。如果实在想不出替代名称,可以将最里面的变量命名为
_value -
在链接中查找问题。问题是,JavaScript 并没有真正以这种方式分离作用域的机制:全局对象总是可以访问的,如果你试图在函数中声明一个同名的变量,它们就会被覆盖。
-
谢谢,但这不是实践,而是理论问题。例如对于 ActionScript,它很容易决定
-
Praveen Kumar,它不是重复的。因为你的链接只说root scope,而不是关于内部功能
标签: javascript actionscript-3 actionscript