关于这题的理解是这样吗

正在回答

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

4回答

同学你好,问题解答如下:

1、add是命名函数,而var add=function(){}的意思是add是变量,值是一个函数(匿名)。两者在预解析的时候有区别,add整个函数会被提升,而变量add提升会被赋值为undefined,从上到下执行代码的时候,add才被赋值为函数。这时候两种表示方式可以理解为是一样的。

2、var fn=add;是fn指向了add函数地址,那么fn的值就是add函数(有名的)。本身输出add函数输出的就是有名的

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

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

所以fn的值也是一样的

3、add=1;改变指向的地址,但是fn的地址不会改变。add代表的是函数名,不是新的变量哦,不要弄混了。

祝学习愉快!

  • 学习plus 提问者 #1
    也就是说,function add(){}中,分为add【函数名】,function add(){}【函数】,原先add【函数名】指向function add(){}【函数】。 将add【函数名】赋值给fn【变量】,fn【变量】指向了function add(){}【函数】。 之后更改add【函数名】的指向,并不会影响function add(){}【函数】的地址,所以fn【变量】依旧指向function add(){}【函数】,是这样理解吗?
    2020-05-18 19:13:48
好帮手慕星星 2020-05-18 19:20:17

同学你好,这样理解是可以的,没有问题。

祝学习愉快!

提问者 学习plus 2020-05-17 21:12:10

不对,function add(num1, num2)可以看做 var add = function add(num1, num2),它是命名函数,function add(num1, num2)中的add不能忽视,是吗?

赋值给var fn,fn打印出的函数也是个命名函数且命名为add,是这样吗?

提问者 学习plus 2020-05-17 21:07:58

这题错在容易把 add 和函数 视为一体吗

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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