8

Possible Duplicate:
What is the purpose of a self executing function in javascript?

What meens in JS write a code like this:

(function (window) { })(window); 

or this:

(function () { })(); 
2
  • It's a duplicate so I voted to close, though I think the answers there aren't as good as the answers here. specially not this wrong +17 answer Commented Jul 3, 2012 at 21:14
  • If someone looks for PHP 7, where this has been introduced. stackoverflow.com/questions/3568410/… Commented Nov 15, 2019 at 15:12

3 Answers 3

12

It creates a closure, a private scope hiding the variables from the global object

// Somewhere... var x = 2; ... ... // Your code var x = "foo" // you override the x defined before. alert(x); // "foo" 

But when you use a closure:

var x = 2; // Doesn't change the global x (function (){ var x = "foo";})(); alert(x); // 2 

Regarding to the syntax, it's just a self executed function, you declare it and then execute it.

Sign up to request clarification or add additional context in comments.

4 Comments

TY! And when I pass a variable? Like this: (function (window) { })(window);
@RigoReis. They become variables in the function. it's used for minifing code, nothing "real"
TY'll folks help me so much, special thanks to @gdoron
@RigoReis. No problem. Good luck in your new js way.
7

It's a self invoking anonymous function or a function expression. It prevents you from creating variables in the global scope. It also calls the function right away.

function someFunc() { // creates a global variable } var someFunc = function () { // creates a global variable } (function(){ // creates an anonymous function and // runs it without assigning it to a global variable })(); 

Comments

3

It's called a closure. It helps control the scope of variables since Javascript hoists variables to the top of their scope. They're also anonymous functions which execute or initialize immediately.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.