javascript

var i= 50;function aa(){
    console.log(i)
};
(function(bb){
    var i = 20;
    bb();
})(aa)  为什么输出的是50????


潇湘沐
浏览 521回答 1
1回答

慕娘9325324

如果用var声明了变量,那这个变量就是局部变量,在当前域内有效。如果不加var,那就成了全局或者是上级域的变量。在aa()里使用的i未有var声明,它就是指当前函数域的上一级,而不是指调用域的上一级。这是原型链的性质。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript