nAdd() 不是在函数f1()里面吗?为什么可以在window下直接调用?如图

nAdd() 不是在函数f1()里面吗?为什么可以在window下直接调用?如图

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
supernijia 2020-02-12 10:20:56

因为rs=f1();将方法实例化了,   rs();就等价于调用f1();所以后面nAdd();能被执行

好帮手慕粉 2020-02-06 10:51:54

同学你好,因为代码是自上而下执行的,如果不执行f1()函数,那么内部的代码就无法执行,所以nAdd就是未定义的,只需要调用下f1函数,就可以了:

http://img1.sycdn.imooc.com//climg/5e3b7f33098a628405120361.jpg

http://img1.sycdn.imooc.com//climg/5e3b7f3f090cd6b008410287.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕粉 2019-11-19 10:31:34

同学你好,因为nAdd函数没有用var进行声明,是全局变量,所以可以直接调用。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 那为什么不能直接调用,显示未定义,加上前面的那两行却可以调用 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script type="text/javascript"> function f1(){ var n=99; nAdd=function(){ n+=1; } function f2(){ alert(n); } return f2; } nAdd(); </script> </script> </div> </body> </html>
    2020-02-05 20:51:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师