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

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

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

慕标5832272 2018-08-27 08:10:31
function test(){            alert(1);             function test2(){                alert(2);                alert(this);            }            test2();            window.test2();        };        test();                test2()执行的时候弹出了 this 是 window,这样的话 在我的理解中 那他就是作用在 window对象下的,相当于 window.test2 = function(){};然后在 下一行 用对象方法的形式调用 window.test2();结果居然报错undefined,我瞬间有点不懂了!!!!
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

早,this 值通过不同的调用方式,指向不同的对象。在这里,普通的调用方式,非严格模式下,this 将指向 window。显而易见,window 对象并没有 test2 函数。


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

添加回答

举报

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