This time I will bring you four ways of declaring functions in js. What are the precautions for declaring functions in js? The following is a practical case, let’s take a look.
Function, the following are its possible uses and the relationships between them.
Usage method one:
var foo01 = function() { var temp = 100; this.temp = 200; return temp + this.temp; } alert(typeof(foo01)); alert(foo01());
Run result: function 300
Explanation: The most common way to use function is to define a JavaScript function. The two writing methods have exactly the same operating effects, but the only difference is that the latter writing method has a higher initialization priority. In the variable scope within the large expansion sign, this refers to the owner of foo01, which is the window object.
Usage method two:
var foo02 = new function() { var temp = 100; this.temp = 200; return temp + this.temp; } console.log( typeof( foo02 ) ); //'object'console.log( foo02.constructor() ); //300
Run result: object 300
Explanation: This is a relatively puzzle function, as if it is to define a function. But actually this is a user-defined object in JavaScript, but here it is an anonymous class. This usage has basically nothing to do with the use of the function itself. A variable scope will be constructed in the large expansion sign, and this refers to the scope itself.
Usage method three:
var foo3 = new Function('var temp = 100; this.temp = 200; return temp + this.temp;'); alert( typeof( foo3 ) ); alert( foo3() );
Run result: function 300
Explanation: Use the system built-in function object to construct a function, which is the same as the first method in method one One way, which is identical in effect and initialization priority, is to give the function body as a string.
Usage method four:
var foo4 = Function('var temp = 100; this.temp = 200; return temp + this.temp;'); alert( typeof( foo4 ) ); alert( foo4() );
Run result: function 300
Explanation: This method is not commonly used. The effect is the same as method three, but it is not clear that new is not used to generate There are no side effects, which also reflects one of the biggest features of JavaScript: flexibility! Save what you can.
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Related reading:
Detailed explanation of Vue list rendering
##Write a using
HTML inline style improvement "Sanmao Classic Quotations"
In-depth analysis of JS functions
The above is the detailed content of Four ways to declare functions in js. For more information, please follow other related articles on the PHP Chinese website!