为了账号安全,请及时绑定邮箱和手机立即绑定

javaScript 函数

javaScript 函数

慕码人8056858 2018-11-21 15:17:33
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
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

没调用Foo的时候

window.getName = function(){

    console.log(4);

}

调用Foo()的时候

getName = function(){

                console.log(1);

            };

// 相当于更改了 window.getName

调用后Foo里面的return this的确指向window,所以最后结果是1.

查看完整回答
反对 回复 2018-12-25
  • 1 回答
  • 0 关注
  • 454 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信