<分区>
如果一个函数在全局范围内声明,但在局部范围内定义,它属于哪个范围?我问是因为我知道它可以访问局部函数的作用域(定义它的地方),但声明让我感到困惑。
例子:
var funcDef;
function a() {
var msg = "Hello, world!";
funcDef = function() {
return msg;
}
}
a();
console.log(funcDef()); // prints Hello, world!
我的理解是变量,funcDef本身是绑定(bind)在全局范围内的,它的函数声明还是绑定(bind)在a()的范围内。有人可以确认吗?