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

JavaScript函数的多种定义方法与其区别是什么?

JavaScript函数的多种定义方法与其区别是什么?

呼啦一阵风 2019-04-14 10:14:38
javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解,那么他有几种写法呢?(function(){…})()或者(function(){…}())
查看完整描述

2 回答

?
繁花不似锦

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

抓住两个关键点很重要:
js中函数是引用类型;
函数一般执行方式:函数名+();
下面的例子帮你理解引用类型
vara=function(x,y){
console.log(x+y);
};
varb=a;
a(1,2);
b(1,2);//b,a指向同一个函数对象
//b重新赋值
b=function(x,y){
console.log(x-y);
}
a(1,2);
b(1,2);
如果还是不理解,参考下这篇文章:javascript中的引用类型接下来说明下函数的几种定义方式:
函数声明
alert(sum(1,2));
functionsum(x,y){
returnx+y;
}
函数表达式
//这段代码会报错
alert(sum(1,2));
varsum=function(x,y){
returnx+y;
}
在写递归的时候可以这样写
//如果直接用sum(x-1)+sum(x-2),如果sum被改名,或者重新赋值,产生bug
varsum=functionfSum(x){
if(x<=2)
return1;
else
returnfSum(x-1)+fSum(x-2);
};
alert(sum(5));
匿名函数
(function(x,y){
alert(x+y);
})(1,2);
                            
查看完整回答
反对 回复 2019-04-14
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

普通函数:
functionsquare(x){
returnx*x;
}
console.log(square(3));
用var声明的匿名函数:
varsquare=(function(x){
returnx*x;
});
或者
varsquare=function(x){
returnx*x;
};
console.log(square(3));
匿名函数(其中(3)表示传入参数3并执行此匿名函数):
(function(x){
returnx*x;
})(3);
或者
(function(x){
returnx*x;
}(3));
                            
查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 277 浏览
慕课专栏
更多

添加回答

举报

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