Home  >  Article  >  Web Front-end  >  javascript function, pointers and built-in objects_javascript skills

javascript function, pointers and built-in objects_javascript skills

WBOY
WBOYOriginal
2016-05-16 18:55:46956browse

Functions are 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 of using functions:
The following is a quotation fragment:
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. object. 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 key words 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:
The following is a reference fragment:
var myArray=[];
//Equivalent to
var myArray=new Array ();
Similarly, the following two pieces of code also create a function myFunction:
function myFunction(a,b){
return a b;
}
//Equivalent to
var myFunction=new Function("a","b","return a b");
By comparing it with the statement to construct an array object, you can clearly see the essence of the function object. The function declaration introduced earlier is The first way of the above code, within 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. call.
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. The following is an introduction to its usage syntax:
The following is a reference fragment:
var funcName=new Function(p1,p2,...,pn,body);
The types of parameters are all strings, from p1 to pn represents 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:
The following is a reference fragment:
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:
The following is a reference fragment:
var i=function (a,b){
return a b;
}(1,2);
alert(i);
This code will display 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 designs or if you want to avoid naming conflicts.
It should be noted that although the following two methods of creating a function are equivalent:
The following is a reference fragment:
function funcName(){
//Function body
}
//Equivalent to
var funcName=function(){
//Function body
}
But the former method creates a named function, while the latter method creates an unnamed function. Just let a variable point to this unnamed function. There is only one difference in usage: for a named function, it can be defined after it is called; while for an unnamed function, it must be defined before it is called. For example:
The following is a quotation fragment:
<script language="JavaScript" type="text/javascript">
<!--
func();
var func=function( ){
alert(1)
}
//-->
</script>
This statement will generate an undefined error for func, and:
The following is a quote Snippet:
<script language="JavaScript" type="text/javascript">
<!--
func();
function func(){
alert(1)
}
//-->
</script>
can be executed correctly, and the following statement can also be executed correctly:
The following is a quotation fragment:

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