javascript关于this对象,在闭包函数中为什么会引用全局变量?
美少女战士剧场版
17小时前
yangpansui 17小时前
gwy2002y 17小时前
wsy881688 17小时前
carmensim 17小时前
dhkoifg 17小时前
因为你定义的name变量本身就是个全局变量,而你对象里面又没有定义有相同的变量名,JavaScript会依次从内部外部寻找name这个变量,你可以把变量写到对象里面去。
yangpansui 17小时前
默认都是指向全局对象的,浏览器是window。你这个code应该
gwy2002y 17小时前
因为闭包里的this指向window,你可以在闭包里console.log(this)一下,会发现输出window。至于为什么闭包里的this会指向window,我还分析不出。不过这个结果请牢记。
wsy881688 17小时前
这个问题,并不是说闭包函数的this一定指向全局,而是函数作用域的问题,一个匿名函数作为返回值,这个匿名函数在执行时已经脱离了原来的scope,作用域变为了全局,this自然指向全局。js中有很多这种情况,比如最常见的回调函数。
carmensim 17小时前
分析一下作用域 全局中object -- > object里面的name/getNameFunc --> getNameFunc函数 -- > 返回函数的立即调用。
dhkoifg 17小时前
方法是谁调用的谁就是this。这个列子里面,object.getNameFunc()返回了一个自执行函数