Ric*_*gan 8 javascript anonymous-function
我在Javascript中看到过这样的自调用函数:
(function () {
// foo!
})();
Run Code Online (Sandbox Code Playgroud)
但我也看到他们这样写:
(function () {
// bar!
}());
Run Code Online (Sandbox Code Playgroud)
从语法上讲,它们完全相同.实际上,我的个人习惯是第一种格式,但是我应该注意两者之间有什么区别吗?像浏览器纠结或其他什么?
例如,一个非常微不足道的事情是,如果第二种格式应该可靠地工作,那么这意味着这样的事情也应该是可能的:
function () {
// shut the front door! saved two characters right there!
}();
Run Code Online (Sandbox Code Playgroud)
尽管如此,这会伤害可读性.
第一的:
正如您所假设的,自调用匿名函数的前两个版本之间绝对没有区别。没有浏览器链接、怪癖,只是取决于个人喜好(顺便说一句,道格拉斯·克罗克福德称后一种形式为“狗球”)。
第二:
function() {
}()
Run Code Online (Sandbox Code Playgroud)
按设计不会起作用,因为该语句创建了一个函数语句/声明。您需要一个函数表达式来立即调用自身。要创建函数表达式,您可以执行多种操作。将整个语句放入括号中是一种方法,但您也可以写
!function() {
}()
Run Code Online (Sandbox Code Playgroud)
或者
+function() {
}
Run Code Online (Sandbox Code Playgroud)
所有这些运算符都会生成一个表达式。
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |