js匿名函数与普通定义的函数有什么区别

本文详细解释了JS中匿名函数与普通定义的函数之间的主要区别,包括调用方式、定义时的相互覆盖以及在不同浏览器上的表现差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js匿名函数与普通定义的函数有什么区别

2014-07-11 09:48 CobbySung  |  浏览 1171 次
如题
例:
test = function(){a=5}
与
function test() {a=5}
有什么区别呢,求大神指点,感谢~
2014-07-11 10:01 提问者采纳

在调用上,这两种方式定义的函数完全没有区别。如果要说区别,在定义时的相互覆盖上,会有一定的差异。例如同时使用下面几种方式同时定义同名的函数及变量:

1
2
3
4
5
6
7
8
9
10
11
12
1、
function  test() { 2}
var  test  =  function () { 1};
2、
var  test  =  function () { 1};
function  test() { 2}
3、
var  test  =  function () { 1};
var  test  =  function () { 2};
4、
function  test() { 1}
function  test() { 2}

你可以尝试一下上面定义时最终test是什么。

追问:
覆盖上有差异吗,我试了下,都是后面覆盖前面呀。无论哪种定义方式...求指点
追答:
不完全是。
以前在IE(最新的没测试过)上测试,函数会覆盖var方式,chrome则相反,但同为函数或者同为var方式(即3,4),则是后面的覆盖前面的。对于1、2两种覆盖,可能浏览器解析有关。所以建议尽量避免两种不同方式的覆盖定义。
就单一个函数或者var定义的函数引用来说,它们的调用方式上是没有区别的。
提问者评价
ganxie
评论  |  1  0

felithuang | 来自团队:能言善编 | 九级 采纳率72%

擅长: JavaScript C/C++ Html/Css 数学 物理学

2014-07-11 09:53 网友采纳
没什么区别吧
不过一般定义 类时用 
匿名函数的方式
var dog=function(a){
this.name=a

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值