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

js函数作用域的问题。

js函数作用域的问题。

慕虎7371278 2019-03-20 17:19:27
关于函数作用域有些地方没想明白,先贴上代码吧。function Foo() {getName = function () { alert (1); }}Foo();getName();//1function Foo() {getName = function () { alert (1); }return window}Foo().getName();//1function Foo() {getName = function () { alert (1); }}Foo().getName();//报错首先是三段代码都是一个类型,1.第一个我的理解就是在全局执行Foo()后在全局中也就是window中创建了一个变量getName并将function () { alert (1); }赋值给他。之后在全局中调用这个函数得到1. 2.第二段代码代码是连着写的,内容基本能看懂,还是先在全局中创建了变量,赋值。然后返回一个值window。之后相当于window。getName().得到1. 3,第三段代码我就没搞懂了,首先foo执行之后还是能在全局中创建变量赋值。然后Foo函数执行完退出函数的执行环境,之后交给之前的执行环境window。然后调用getName,我的理解的话也是1. 我知道肯定有地方不对,不是人家也不会用return window。我现在主要不理解的是为啥要return window,还有 Foo().getName()这个的过程到底做了什么?今天看了很久都还是不太理解,
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

第三段代码执行Foo()后返回undefined undefined.getName()报错啊 你确定弹出了undefined?


查看完整回答
反对 回复 2019-04-04
  • 1 回答
  • 0 关注
  • 341 浏览
慕课专栏
更多

添加回答

举报

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