自调用匿名函数的语法
Grammar of Self Invoking Anonymous Functions
从我从其他主题中读到的关于siaf或自调用匿名函数的问题只是作为容器存在,并且它限制了变量的范围(从我学到的)。现在,问题是,为什么我可以这样做:
$("ul>li").click((function(){
}));
但在它之后不添加另一个SIAF ?像这样:
$("ul>li").click((function(){
}));
(function(){
});
这对我来说很奇怪,因为只有SIAF本身在IDE中没有给我任何错误:
$("ul>li").click((function(){
}));
(function(){
});
This:
(function() { .. });
是一个无操作表达式,特别是它不涉及函数调用。函数对象被实例化,但不以任何方式使用。
:
(function() { ... })();
做一些事情,因为后面的()
导致函数被调用。(它不调用自己)
在JavaScript中,对函数的引用只是一个值,而函数只是一个对象(一个特殊的对象)。当对函数的引用后跟一个带圆括号的值列表时,这就是函数调用。函数的引用来自哪里并不重要。(它的来源可以影响函数调用的语义,但不会影响函数调用本身的基本事实。)
编辑本;术语"自调用函数表达式"已经获得了一些流行。我不想陷入争论,但在我看来,它不如另一种"立即调用的函数表达式"准确,因为函数实际上不能从外部调用自己。它可以包含对自身的调用,但这是完全不同的事情。但是我理解这个词的意思,我认为它是无害的。
相关文章:
- javascript自执行函数-不同的语法
- 函数的Javascript语法
- 使用JS函数来使用另一个函数的语法?node.js
- 在递归生成器函数中,yield后面的*(星号/星号)语法意味着什么
- 如何定义const函数javascript(语法糖)
- 为什么匿名函数本身就是javascript中的语法错误
- javascript匿名函数语法
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- JS中奇怪的函数定义语法
- 有没有一种优雅的方式来告诉esint,以确保我们're没有使用任何ES6语法/函数
- 在ES6中将数组析构函数参数的语法
- jQuery中的匿名函数语法
- Javascript函数变量传递语法问题
- javascript 函数返回的语法(空格)是否会影响结果
- uiWebview 调用 javascript 函数语法
- Javascript语法函数问题
- javascript语法:函数
- 怪异的JS语法:函数声明中的数学运算符
- JavaScript中是否存在这种PHP语法?函数(var=null)