Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
161 views
in Technique[技术] by (71.8m points)

What does (function (x,y){...})(a,b); mean in JavaScript?

I saw this function:

(function (x, y, data, lbl, dot) {
    // Function body...
})(x, y, data[i], labels[i], dot);

What is this? A function? Why place a function definition in ()?

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

In javascript you can have anonymous and self invoking functions.

function add(a, b)
{
   return a + b;
}

is same as

var add = function (a, b) {
             return a + b;
          }

and you call these as

add(10, 20)

You can define the function and call it immediately as

(
   function(a, b)
   {
      return a + b;
   }
)(10, 20);

The

   (
       function(a, b)
       {
          return a + b;
       }
    )

part defines a function, and the (10, 20) immediately after it calls the function just defined, with 10 and 20 as arguments to it.

Since the function does not have a name, it cannot be used later in the code.

The code in your question is probably minified, and creates a function in a similar way and calls it immediately.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...