我是编程的初学者,我只是想知道一件事。确切地说是(function(){...}).()
可能有人问过这个问题,但是由于我不知道它是什么以及如何称呼它,因此我很幸运地找到了有关该主题的任何信息。
我最近一直在检查一些脚本,我注意到其中一些人使用:
(function(){
...
}).(something) //
到目前为止,我猜它类似于立即调用自身的函数?我们如何使用它,它的优点是什么。我在“某物”所在的地方放了什么?有时在它开始之前它也有$
标志。
我是编程的初学者,我只是想知道一件事。确切地说是(function(){...}).()
可能有人问过这个问题,但是由于我不知道它是什么以及如何称呼它,因此我很幸运地找到了有关该主题的任何信息。
我最近一直在检查一些脚本,我注意到其中一些人使用:
(function(){
...
}).(something) //
到目前为止,我猜它类似于立即调用自身的函数?我们如何使用它,它的优点是什么。我在“某物”所在的地方放了什么?有时在它开始之前它也有$
标志。
您的第一个示例是匿名自调用函数。所以你是对的,它会立即调用自己。如果它有名称,则该名称将仅在那些括号内可见(..)
。
美元符号函数是jQuery调用的简写。
想象一个正常的函数:
function foo(){
...
}
现在让我们调用该函数:
foo();
让我们直接调用它,而不是使用它的名字来调用函数:
(function foo(){
...
})();
由于我在其他任何地方都不使用此函数,因此我们删除它的名称:
(function(){
...
})();
想要将参数传递给函数?当然!
(function(something){
...
})(something);
这样做的好处?我们有范围!
(function(something){
var bar = 5; // Can't access this outside the function
})(something);
这允许您定义全局范围之外的内容。
您是正确的,因为它是一个立即调用自身的函数,也称为自执行函数。
这$
只是使用 jquery 的简写。
function(){} 是在声明一个函数,而当我们这样做时
$(function() {}) 这意味着我们将一个函数作为参数传递给另一个函数 $(),当时间满足时,这个函数将由 $() 执行
这很像
var a = function() { do something }
a();
会做一些事情,在 C# 中它类似于委托,而在 C++ 中它就像函数指针,在 javascript 中它变得简单,尽管您可以直接在参数应该所在的位置嵌入函数