Co oznacza " (function () {});", funkcja wewnątrz nawiasów, w javascript? [duplikat]

to pytanie ma już odpowiedzi tutaj : Zamknięte 10 lat temu .

Możliwe duplikaty:
Co to znaczy? (function (x,y)){...}){a, b) ; w JavaScript
co robią nawiasy otaczające JavaScript object/function / class declaration mean?

Cześć Wszystkim

Nie wiem co robi:

(function(){
  // Do something here
  ...
})(someWord) //Why is this here?;
Moje pytania to:
  1. jaki jest sens umieszczania funkcji w nawiasach .tzn. (function(){});?
  2. co robi zestaw nawiasów na końcu funkcji?

Zwykle widzę je w kodach jquery i niektórych innych bibliotekach javascript.

Author: Community, 2010-10-28

5 answers

Natychmiast wywołujesz funkcję anonymus z określonym parametrem.

Przykład:

(function(name){
  alert(name);
})('peter')

To wpis " Piotr ".

W przypadku jQuery możesz przekazać jQuery jako parametr i użyć $ w swojej funkcji. Możesz więc nadal używać jQuery w trybie noConflict, ale użyj podręcznego $:

jQuery.noConflict()
(function($){
  var obj = $('<div/>', { id: 'someId' });
})(jQuery)
 54
Author: pex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-28 14:13:41

Tworzysz funkcję, która jest natychmiast wywoływana, z someWord jako parametrem.

 10
Author: Rocket Hazmat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-28 14:10:46

To sposób na zdefiniowanie funkcji anonimowej, a następnie natychmiastowe jej wykonanie-nie pozostawiając śladu, jak to było. Zakres funkcji jest naprawdę lokalny. Nawiasy () Na końcu wykonują funkcję -- nawiasy zamykające mają na celu disambiguate what is being executed.

 7
Author: fish2000,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-28 14:11:49

Zasadniczo pozwala to zadeklarować funkcję anonimową, a następnie zamykając ją w nawiasach i pisząc (someWord) uruchamiasz funkcję. Można myśleć o tym jako o zadeklarowaniu obiektu, a następnie natychmiastowym utworzeniu instancji obiektu.

 7
Author: Justin Ethier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-28 14:12:23

Służy do tworzenia funkcji anonimowej (funkcja bez nazwy, która może być "zagnieżdżona" wewnątrz innej funkcji) i przekazywania argumentu do tej funkcji. Słowo jest przekazywane jako argument, a funkcja może je odczytać używając słowa kluczowego "arguments".

Prosty przykład użycia:

function Foo(myval) {
    (function(){
      // Do something here
      alert(arguments[0]);
    })(myval); //pass myval as argument to anonymous function
}
...
Foo(10);
 7
Author: Shadow Wizard is Vaccinating,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-28 14:13:25