KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
What do you call these patterns? What is the difference between them? When would you use each? Are there any other similar patterns? (function() { console.log(this); // window })(); (function x() { console.log(this); // window })(); var y = (function() { console.log(this); // window })(); var z = function() { console.log(this); // window }(); EDIT: I just found two more seemingly redundant ways to do this by naming the functions in the last two cases... var a = (function foo() { console.log(this); // window })(); var b = function bar() { console.log(this); }(); EDIT2: Here is another pattern provided below by @GraceShao which makes the function accessible outside the function scope. (x = function () { console.log(this); // window console.log(x); // function x() {} })(); console.log(x); // function x() {} // I played with this as well // by naming the inside function // and got the following: (foo = function bar() { console.log(this); // window console.log(foo); // function bar() {} console.log(bar); // function bar() {} })(); console.log(foo); // function bar() {} console.log(bar); // undefined
Tags (comma-separated)
Save Edits
Cancel