报错Uncaught ReferenceError: z is not defined ,可是函数里 z 已定义

我把foo函数作为参数传递,所以此时funArg就是foo函数的引用。我想的是执行funArg()这句话时会搜寻z是不是已经定义,所以结果z的值应为20,但显然z没有输出20,报错z is not defined ,这是为什么呢?

function foo(){
    console.log(z);
}
(function(funArg){
    var z = 20;
    funArg();
})(foo);

报错:Uncaught ReferenceError: z is not defined

阅读 2.9k
1 个回答

一句话: z 不在 foo 定义时的上下文中。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题