使用以下代码如何从log2中访问a
?
(function() {
function log() {
var a = "string";
}
log()
function log2() {
console.log(log.a);
}
console.log(log);
log2();
})()
答案 0 :(得分:1)
JavaScript中使用var
关键字声明的变量是功能范围的。这意味着无法从它们声明的函数外部访问它们而不返回它们。解决方案是在外部立即调用的函数中声明变量,该函数将包含变量并使其可用于两个内部函数:
(function() {
var a;
function inner1 () {
a = 'string';
}
function inner2 () {
console.log(a);
}
inner1();
inner2(); // => logs 'string'
})()
console.log(a); // => logs undefined, because a is enclosed