javascript中这两种写法的区别是什么?
巴扎黑
巴扎黑 2017-04-10 17:29:44
[JavaScript讨论组]

1. 问题:

下面这两种js的写法有什么区别?有什么理论性的知识点说明的吗?

2.


(function(w){
   console.log(w);
}(window));

//匿名自执行函数
(function(w){
   console.log(w);
})(window);
巴扎黑
巴扎黑

全部回复(3)
天蓬老师

谁告诉你第一种叫闭包函数的?

黄舟

没有本质的区别。。。都会调用这个匿名函数。
如果非要说有的话,那就是后一种是正统的函数调用,类似 (fn)(window)等价于fn(window),前一种算是比较hack的写法,类似于 (fn(window)) 之所以要额外的括号,是因为 function(w){console.log(w)}(window),不是合法的 js 表达式,加个括号就是了。
常见的其他写法还有
+function(w){console.log(w)}(window) 等价于 +fn(window)
-function(w){console.log(w)}(window) 等价于 -fn(window)
等。
他们解决的都是上面那个不是合法的表达式的问题。

ringa_lee

没区别都是匿名自执行函数

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号