[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
Solved

# Function passed to function

Posted on 2011-05-10
Medium Priority
169 Views
Hi All,

Can someone explain to me how the attached code works?
I understand the 3 and 4 are passed as the x and y parameters and the function is passed as the z parameter.. But i don understand  what parameters are being passed to: function(x,y) { return x * y}??
Also, what is happening in the following line:

Thanks

``````function funcObject(x,y,z) {
}

function testFunction() {

// third parameter is function
funcObject(3,4,function(x,y) { return x * y})
}

testFunction();
``````
0
Question by:oggiemc
• 3
• 2

LVL 9

Accepted Solution

Roman Gherman earned 1500 total points
ID: 35731313
Hi,

Javascript allows you to pass any object as a parameter to a function.

A function is basically an object in javascript, this is why in the example you provided you have a function as the third parameter.

"alert(z(x,y));" - will call the function passed in parameter z with the two parameters: x and y.

this will show an dialog containing the TEXT: 12.
x*y = 12;
0

LVL 13

Assisted Solution

dsmile earned 500 total points
ID: 35731332
No params are passed to function(x,y) { return x * y}
It's function definition that is passed to funcObject()

12 will be the result of alert
0

Author Comment

ID: 35731540
Thanks for reply guys..Unfortunately i still dont see where the actual multiplication of x * y is happening??

roma
\\ "alert(z(x,y));" - will call the function passed in parameter z with the two parameters: x and y.

so what you are saying is that above line is equivalent to:
alert(function(x,y) { return x * y}(x,y));   // i.e z = function(x,y) { return x * y}?

it all looks a bit confusing to me, and im not really sure what is the point of this technique?? Perhaps someone can enlighten me / explain in a bit more detail?
0

LVL 9

Assisted Solution

Roman Gherman earned 1500 total points
ID: 35731629
yes, that is correct.

that syntax is called anonymous function.
0

Author Comment

ID: 35732781

So all the above line means is:

The z function i.e function(x,y) { return x * y} is called, and the x,y parameters are passed in to it?? I understand it is called an anonymous function, however i do not understand why such functions are used? What is the advantage over declarative functions?

thanks
0

LVL 9

Assisted Solution

Roman Gherman earned 1500 total points
ID: 35735231
yes the x,y parameters are passed in to it

0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In real business world data are crucial and sometimes data are shared among different information systems. Hence, an agreeable file transfer protocol need to be established.
We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
###### Suggested Courses
Course of the Month19 days, 21 hours left to enroll