javaScript函数使用括号的区别

本文探讨了JavaScript中函数作为属性值时的不同赋值方式及其影响,并解析了匿名函数立即执行的用途及好处。

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

一、javascript引用函数的时候加不加括号的区别

在javascript中如果需要给一个元素attach一个event,那么我们可以这么写:

1. document.getElementByIdx_x('myid').onclick = function(event){};
2. document.getElementByIdx_x('myid').onclick = myFunc;
3. document.getElementByIdx_x('myid').onclick = myFunc();
4. function myFunc(event){};

那么上面的三种写法对吗?通过执行就会发现第3种写法有问题。第1种方法是以匿名函数的方式直接赋值,关键在于第2和第3的区别,也就是带与不带括号的区别,如果带上括号是对函数的调用,得到的是其返回值;如果不带括号代表的是对函数本身的引用,所以区别非常大。同时顺便说一下第4行定义的函数虽然在后,但是会被解释器将其作用域提升到js最高的作用域之内,所以并不影响前面的语句对其的引用。


二、javascript匿名函数结尾处圆括号含义

eg:  var a = function(p1,p2){alert(p1+p2);}(1,2);

       (function(p1,p2){alert(p1+p2);})(1,2);

这种写法可以看做是私有的内部类,一般出于加载时就需要立即执行的代码可以这样来些,再就是避免与其它的名称相冲突.

相当于:

       function test(p1,p2){ alert(p1+p2); }

       test(1,2);

匿名方法的好处:
1.其它外部调用不到,相对安全.
2.可用于onload事件保证不与其冲突.
3.可看做线程安全.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值