0

我是编程的初学者,我只是想知道一件事。确切地说是(function(){...}).()

可能有人问过这个问题,但是由于我不知道它是什么以及如何称呼它,因此我很幸运地找到了有关该主题的任何信息。

我最近一直在检查一些脚本,我注意到其中一些人使用:

(function(){
   ...
}).(something) // 

到目前为止,我猜它类似于立即调用自身的函数?我们如何使用它,它的优点是什么。我在“某物”所在的地方放了什么?有时在它开始之前它也有$标志。

4

4 回答 4

1

您的第一个示例是匿名自调用函数。所以你是对的,它会立即调用自己。如果它有名称,则该名称将仅在那些括号内可见(..)

美元符号函数是jQuery调用的简写。

于 2013-10-30T03:38:08.353 回答
1

想象一个正常的函数:

function foo(){
    ...
}

现在让我们调用该函数:

foo();

让我们直接调用它,而不是使用它的名字来调用函数:

(function foo(){
    ...
})();

由于我在其他任何地方都不使用此函数,因此我们删除它的名称:

(function(){
    ...
})();

想要将参数传递给函数?当然!

(function(something){
    ...
})(something);

这样做的好处?我们有范围!

(function(something){
    var bar = 5; // Can't access this outside the function
})(something);

这允许您定义全局范围之外的内容。

于 2013-10-30T03:41:41.263 回答
0

您是正确的,因为它是一个立即调用自身的函数,也称为自执行函数

$只是使用 jquery 的简写。

于 2013-10-30T03:37:41.850 回答
0

function(){} 是在声明一个函数,而当我们这样做时

$(function() {}) 这意味着我们将一个函数作为参数传递给另一个函数 $(),当时间满足时,这个函数将由 $() 执行

这很像

var a = function() { do something }
a();

会做一些事情,在 C# 中它类似于委托,而在 C++ 中它就像函数指针,在 javascript 中它变得简单,尽管您可以直接在参数应该所在的位置嵌入函数

于 2013-10-30T03:39:02.803 回答