猿问

本以为已经懂了js的作用域问题,下面这个现象突然让我懵逼了。

function test(){

            alert(1);

             function test2(){

                alert(2);

                alert(this);

            }

            test2();

            window.test2();

        };


        test();

        

        

test2()执行的时候弹出了 this 是 window,这样的话 在我的理解中 那他就是作用在 window对象下的,相当于 window.test2 = function(){};然后在 下一行 用对象方法的形式调用 window.test2();结果居然报错undefined,我瞬间有点不懂了!!!!

慕标5832272
浏览 479回答 1
1回答

Helenr

早,this 值通过不同的调用方式,指向不同的对象。在这里,普通的调用方式,非严格模式下,this 将指向 window。显而易见,window 对象并没有 test2 函数。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答