javascript

var i= 50;
function aa(){
    console.log(i)
};
(function(bb){
    var i = 20;
    bb();
})(aa)  为什么输出的是50???? 
阅读 1.6k
1 个回答

如果用var声明了变量,那这个变量就是局部变量,在当前域内有效。如果不加var,那就成了全局或者是上级域的变量。在aa()里使用的i未有var声明,它就是指当前函数域的上一级,而不是指调用域的上一级。这是原型链的性质。

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