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.
添加回答
举报
0/150
提交
取消