js一个变量赋值为函数名这个变量的类型

functionf1(){varn=999;functionf2(){alert(n);}returnf2;}varresult=f1();若改为varresult=f1... function f1(){
var n=999;
function f2(){
alert(n);
}
return f2;
}
var result=f1(); 若改为var result=f1;
result(); result();
这个有弹窗999 这个为什么无弹窗
展开
 我来答
百度网友6705c13
2017-05-04 · TA获得超过801个赞
知道小有建树答主
回答量:613
采纳率:83%
帮助的人:196万
展开全部
从头整理一下:
f1是function
f1()表示执行f1这个function,执行结果是f2这个function
f2()表示执行f2这个function,执行结果是alert(999)
result = f1() 表示把f1的执行结果赋给result,就是把f2赋给result,所以result()相当于f2(),能alert(999)
result = f1表示把f1赋给result,注意不是执行结果,所以result()等同于f1()等同于f2,而result()()才等同于f2(),这样才会alert(999)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式