Home  >  Article  >  Web Front-end  >  Understand JavaScript functions

Understand JavaScript functions

黄舟
黄舟Original
2016-12-14 15:48:57911browse

Function is the basis for modular programming. To write complex Ajax applications, you must have a deeper understanding of functions.

  Functions in JavaScript are different from other languages. Each function is maintained and run as an object. Through the properties of function objects, you can easily assign a function to a variable or pass the function as a parameter. Before continuing, let’s take a look at the syntax for using functions:

以下是引用片段:
function func1(…){…} 
var func2=function(…){…}; 
var func3=function func4(…){…}; 
var func5=new Function();

These are the correct syntax for declaring functions. They are very different from common functions in other languages ​​or the function definition methods introduced before. So why can it be written like this in JavaScript? What is the syntax it follows? These are described below.

 Understanding Function Object

  You can use the function keyword to define a function, specify a function name for each function, and call it through the function name. When JavaScript is interpreted and executed, functions are maintained as an object, which is the Function Object to be introduced.

  Function objects are essentially different from other user-defined objects. This type of object is called an internal object. For example, date object (Date), array object (Array), and string object (String) are all internal objects. . The constructors of these built-in objects are defined by JavaScript itself: by executing a statement such as new Array() to return an object, JavaScript has an internal mechanism to initialize the returned object, instead of the user specifying how the object is constructed.

 In JavaScript, the corresponding type of function object is Function, just like the corresponding type of array object is Array, and the corresponding type of date object is Date. You can create a function object through new Function(), or you can use the function keyword to create an object. For ease of understanding, we compare the creation of function objects with the creation of array objects. Let’s look at the array object first: The following two lines of code both create an array object myArray:

以下是引用片段:
var myArray=[]; 
//等价于 
var myArray=new Array(); 
同样,下面的两段代码也都是创建一个函数myFunction: 
function myFunction(a,b){ 
      return a+b; 
} 
//等价于 
var myFunction=new Function("a","b","return a+b");

By comparing it with the constructing array object statement, you can clearly see the essence of the function object. The function declaration introduced earlier is the first type of the above code. method, and inside the interpreter, when encountering this syntax, a Function object will be automatically constructed, and the function will be stored and run as an internal object. It can also be seen from here that a function object name (function variable) and an ordinary variable name have the same specifications. Both can refer to the variable through the variable name, but the function variable name can be followed by parentheses and a parameter list to perform the function. transfer.

  It is not common to create a function in the form of new Function(), because a function body usually has multiple statements. If they are passed as parameters in the form of a string, the readability of the code will be poor. Here is an introduction to its usage syntax:

以下是引用片段:
var funcName=new Function(p1,p2,...,pn,body);

The types of parameters are all strings. p1 to pn represent the parameter name list of the created function, body represents the function body statement of the created function, and funcName is the name of the created function. You can create an empty function without specifying any parameters, and create an unnamed function without specifying funcName. Of course, such a function has no meaning.


It should be noted that p1 to pn are lists of parameter names, that is, p1 can not only represent a parameter, it can also be a comma-separated parameter list. For example, the following definitions are equivalent:

以下是引用片段:
new  Function("a", "b", "c", "return a+b+c") 
new Function("a, b, c", "return a+b+c") 
new Function("a,b", "c", "return a+b+c")

JavaScript introduces the Function type and provides syntax such as new Function() because function objects must use the Function type to add properties and methods.

 The essence of a function is an internal object, and the JavaScript interpreter determines how it operates. The function created by the above code can be called using the function name in the program. The function definition issues listed at the beginning of this section are also explained. Note that you can add parentheses directly after the function declaration to indicate that the function is called immediately after creation. For example:

以下是引用片段:
var i=function (a,b){ 
       return a+b; 
}(1,2); 
alert(i);

This code will show that the value of variable i is equal to 3. i represents the returned value, not the created function, because the brackets "(" have a higher priority than the equal sign "=". Such code may not be commonly used, but when the user wants to This is a good solution for modular design or to avoid naming conflicts

Please pay attention to the PHP Chinese website (www.php.cn) for more related articles!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn