Home  >  Article  >  Web Front-end  >  What are the application scenarios of closures?

What are the application scenarios of closures?

hzc
hzcOriginal
2020-06-28 13:47:138345browse

Closure application scenarios include: 1. SetTimeout call using function reference; 2. Replace global variables with a small scope; 3. Public methods with access to private variables and private functions.

What are the application scenarios of closures?

Local variables inside the function cannot be accessed from outside the function, but functions inside the function can access local variables within this function, so external access to the function is achieved through closures Local variables inside the function. However, it can easily cause memory leaks and should be used with caution.

Usage scenarios of closures:

1], setTimeout call using function reference method

The first parameter of setTimeout is usually a The function to be executed, the second parameter is a delay time.

If a piece of code wants to be called through setTimeout, then it needs to pass a reference to a function object as the first parameter, but the reference to this function object cannot provide parameters for the object that will be delayed. At this time, you can call another function to return a call to the internal function, and pass the reference of the internal function object to the setTimeout function. The parameters required when the internal function is executed are passed to it when calling the external function. setTimeout is used when executing the internal function. There is no need to pass parameters because the internal function can still protect against forgery of the parameters provided when the external function is called.

What are the application scenarios of closures?

2】, small scope instead of global variables

What are the application scenarios of closures?

3】, privileged method to access private variables ?

Privileged methods: public methods that have access to private variables and private functions

Private variables include:

1), local variables

2) Parameters of the function

3) Other functions (closures) defined inside the function

What are the application scenarios of closures?

Two are defined in the constructor of the above code Privileged methods: getName(), setName(), these two methods can be accessed through the object, and both have access to the private variable name, but there is no method to access name outside the Person constructor. Since these two methods are defined inside the function, they can be accessed through the scope chain as closures.

Recommended tutorial: "JS Tutorial"

The above is the detailed content of What are the application scenarios of closures?. 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