Home  >  Article  >  Web Front-end  >  What is a javascript closure

What is a javascript closure

清浅
清浅Original
2019-02-26 10:59:453124browse

JavaScript closure is an internal function that can access all local variables, parameters or other internal functions in the scope of its external function. When using closures, you need to pay attention to the fact that the use of closures increases memory consumption and may cause memory leaks

The closure function in JavaScript is an important knowledge point in JavaScript and also a difficulty. Simply put, a closure is a variable that a function can access in the scope outside its function. Next, in the article, I will introduce to you in detail what JavaScript closure is, which has a certain reference effect. I hope it will be helpful to everyone.

What is a javascript closure

【Recommended course: JavaScript Tutorial

JavaScript Closure

In JavaScript, function definitions and function expressions are allowed to be located in the function body of another function (inner function), and the inner function can access the outer function declaration where they are located All local variables, parameters and other internal functions in . A closure will be formed when one of the internal functions is called outside the external function

Characteristics of closure

The closure function has the following three characteristics

(1) Function nested function

(2) Internal functions can access variables of external functions

(3) Parameters and variables will not be recycled

Example:

<script>
function f1(){
var n=999;
nAdd=function(){
	n+=1
}
function f2(){
 document.write(n);
    }
    return f2;
  }
  var result=f1();
  result(); 
  nAdd();
  result();
	</script>

The output result is:

What is a javascript closure

The above code can be understood like this:

f1 is the parent function of f2, and f2 is assigned to a global variable (the value of return), which causes f2 to always be in memory, and the existence of f2 depends on f1, so f1 is always in memory and will not be garbage collected after the call ends ( garbage collection), which forms a closure.

What is a javascript closure

Advantages and disadvantages of closure

Advantages

(1 ) It can protect the security of variables within the function, implement encapsulation, and prevent variables from flowing into other environments and causing naming conflicts

(2) Anonymous self-executing functions can reduce memory consumption

(3) In memory Maintaining a variable can be cached

Disadvantages

(1) The referenced private variable cannot be destroyed, which increases memory consumption and causes memory leaks

(2) Since closures involve cross-domain access, they will cause performance losses and affect code execution speed

Recommended related articles:Closures in JavaScript What is the meaning and how to use it

Summary: The above is the entire content of this article. I hope this article can help everyone understand the closure function in JavaScript.

The above is the detailed content of What is a javascript closure. For more information, please follow other related articles on the PHP Chinese website!

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
Previous article:what javascript can doNext article:what javascript can do