javaScript 函数

function Foo(){

            getName = function(){

                console.log(1);

            };

           return this;

        }


        var getName = function (){ 

            console.log(4)

        };




          Foo().getName(); 

上面的代码为什么输出的是1;

foo()运行之后输出了this,这个this是window对象,foo()中的getName是不是也就成了全局下的函数表达式;而下面的var getName也是一个函数表达式;为什么打印结果是1;

foo,执行后它等同于于下面这个代码么?

getName = function(){

            console.log(1);

        };


        var getName = function (){ 

            console.log(4)

        };




          getName(); //4


慕码人8056858
浏览 455回答 1
1回答

杨__羊羊

没调用Foo的时候window.getName = function(){    console.log(4);}调用Foo()的时候getName = function(){                console.log(1);            };// 相当于更改了 window.getName调用后Foo里面的return this的确指向window,所以最后结果是1.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript