JavaScript advanced function call -


i learning javascript , don't understand style of writting js code read. know "old" way didn't found manual explained style of create , calling js function. "new way":

// object var dog = {     color: 'brown',     size: 'big' };  //function write dog size (function(dog) {     return dog.size; })(dog); 

from javascript manual know (old way):

function prinsize(dog) {     return dog.size } console.log(prinsize(dog)); 

please send me link js doc, explained why

  • in js code on start , end of function brackets

  • why possible after declare of function write brackets .(dog) , call function argument dog.

to understand better, consider alternative way write number 1:

(function() { return 1; })() 

what define function returns 1, executes () following it, whole thing evaluates number 1.

of course, there no reason this, might write 1.

so 1+2, write

(function() { return 1; })() + function() { return 1; }() 

(i don't need parentheses around second function, since in position syntactically expression.)

in same sense, function

(function(dog) { return dog.size; })(dog) 

is exactly equivalent writing dog.size start with. don't know saw this, standing on own, ridiculous in 2 ways: first of all, said same dog.size, , second, not resulting size--to result, you'd need write

var size = function(dog) { return dog.size; }(); 

but again, might write

var size = dog.size; 

there plenty of reasons use these so-called "iifes", or immediately-invoked function expressions, including hiding information inside them, not 1 of them.


Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -