Cierre apreciado JS-

¿Qué es un cierre?

Los cierres (cierre) es un importante javascript dificultad, sino también sus características. Muchas aplicaciones avanzadas deben confiar para lograr el cierre.
Los cierres de las personas se sientan en JS es un concepto relativamente vaga, de hecho, por lo general escribir el código ha sido utilizado sin darse cuenta un montón de cierre, entiendo que la totalidad del cierre de función, externa cuando anidado función interna, la referencia de función variable interna (función) de la función externa, se genera el cierre. En resumen condición se produce de cierre comprende la siguiente: 1, la función anidada, 2, los datos internos de referencia función (variable o función) de la función externa, 3, la función externa se llama. Satisface las tres condiciones anteriores a cierres producen.
Por ejemplo, la siguiente declaración:

function f1(){
    var n="Joey_Tribiani";
    function f2(){
      console.log(n); //Joey_Tribiani
    }
    f2();
  }

Este código en realidad se ha logrado cierres de función, la variable n se define fuera de la función f1 f2 funciones internas, como se les llama función f2 puede utilizar esta variable, y por lo tanto producir en línea con las condiciones que estamos hablando dispositivos de cierre, que es un cierre simple.

El papel de los cierres

Los cierres se pueden utilizar en muchos lugares. Es más útil para los dos, uno es las variables antes mencionadas se pueden leer dentro de la función, y la otra es para que los valores de estas variables se mantienen en la memoria y no se borran automáticamente después de la llamada f1. Y debido a que las variables se definen dentro de una función, de esta manera no va a contaminar el espacio de nombres global.

¿Por qué es esto así? La razón es que la función f1 padre es f2, y f2 se le asigna a una variable global, lo que conduce a f2 está siempre en la memoria, y se basa en la presencia de f1 y f2, f1, por tanto, siempre en la memoria, y no después de la final de la llamada , la recolección de basura (recolección de basura) se recuperó. (Es importante entender esto)

se utilizan Precauciones cierres

1, debido a los cierres hará que la función de las variables se almacenan en la memoria, el consumo de memoria es grande, no puede ser abusado de cierre, si no causará problemas de rendimiento de página web en Internet Explorer puede conducir a pérdidas de memoria. La solución es, antes de salir de la función va a eliminar no se utilizan todas las variables locales.

2, el cierre funcionará fuera de la matriz, la función madre cambia el valor de la variable interna. Por lo tanto, si se toma la función madre como un objeto (objeto) a utilizar, el cierre de sus métodos públicos (Método público) como la variable interna como su propiedad privada (valor privado), entonces usted debe tener cuidado de no sólo cambia el valor de la función de los padres de las variables internas.

Se han publicado 19 artículos originales · ganado elogios 0 · Vistas 296

Supongo que te gusta

Origin blog.csdn.net/Joey_Tribiani/article/details/103543103
Recomendado
Clasificación