


The difference and internal principles between the two definition methods of JS_Basic knowledge
May 16, 2016 pm 05:13 PMI believe everyone has used both methods, but not everyone knows the difference and internal principles.
// Method 1
function func1(x, y){
// your code
}
// Method 2
var func2 = function(x,y){
// your code
}
Method 1 is a typical function declaration (Function declarations).
Method 2 is function expressions, assigning an anonymous function to a variable. In other words, method 2 creates an anonymous function with formal parameters x and y, and then assigns the anonymous function to the variable func2.
The main difference is:
1, the function declaration needs to display the specified function name, here is func1; the function expression uses the anonymous function
2, method 1 is before the code is executed (interpretation period ) is loaded into the scope, method 2 needs to be loaded when the code is executed (runtime)
A simple example will help you understand the difference in their use
alert(func1); // --> func1 source code
alert(func2); // --> undefined
// Method 1
function func1(x,y){
// your code
}
// Method 2
var func2 = function(x ,y){
// your code
}
As you can see, the source code of func1 pops up the first time, but it is undefined the second time. That is, if you use method 1 (function declaration) to define a function, you can use it on top of the function code. If you use method 2 (function expression) to define a function, it cannot be used before its definition, but can only be used after its definition.
It internally involves the execution context (Execution context) and the activation object (Activation object). If you want to know more, please read the EcmaScript 5 documentation.
Recently, I have found that more and more people like to use method 2 to define functions, especially in nested functions. For example, simply defining a function is still customary method 1.

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to use JS and Baidu Maps to implement map pan function

Recommended: Excellent JS open source face detection and recognition project

Essential tools for stock analysis: Learn the steps to draw candle charts with PHP and JS

PHP and JS Development Tips: Master the Method of Drawing Stock Candle Charts

How to create a stock candlestick chart using PHP and JS

How to use JS and Baidu Maps to implement map polygon drawing function

How to use JS and Baidu Map to implement map click event processing function
