我认为我理解变量范围,但似乎我还需要学习更多。
我有这样的设置:
function start() {
var playerLocation = world001map;
var doggy = 'wooof!';
function loadLevel(levelToLoad) {
levelToLoad();
loadLevel(playerLocation);
}
}
function world001map() {
alert(doggy);
}
好像我无法从world001map函数访问doggy变量。我认为子函数总是可以访问父母的变量。
为什么我不能从“world001map”访问“doggy”并且有什么方法可以解决这个问题?
答案 0 :(得分:1)
范围取决于函数定义的位置(即函数声明或函数表达式的代码中的位置),而不是复制到的位置。
var playerLocation = world001map
不允许world001map
访问范围为start
的变量
答案 1 :(得分:0)
是的,狗狗被隔离到起始范围。
两种修复方法:将狗狗传递给world001map:
function world001map(doggy)
2,使狗狗全局化,在启动功能之外进行设置。