是否可以像这个例子一样从外部函数访问内部变量?
function a(f) {
var c = 'test';
f();
}
a(function() {
alert(c); //at this point, c should = "test"
});
不,那行不通。重要的是函数(从词法上)在哪里defined,不是它所在的地方invoked.
当弄清楚“c”指的是什么(如果有的话)时,语言会在本地范围中查找,然后在下一个范围中查找基于函数的定义。因此,如果“a”的调用发生在another功能是did有自己的本地“c”,那么该值就是警报显示的值。
function b() {
var c = 'banana';
a(function() {
alert(c);
});
}
b(); // alert will show "banana"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)