Angular-styleguide: JavaScript Closure debe cambiarse de nombre a IIFE, porque Closure e IIFE son dos cosas separadas.

Creado en 26 mar. 2016  ·  5Comentarios  ·  Fuente: johnpapa/angular-styleguide

https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#style -y010

Menciona cierres de JavaScript e IIFE. Pero usar IIFE para crear un alcance local para evitar fugas al espacio global no tiene nada que ver con los cierres.

En lenguaje C, no hay cierre, pero podemos usar la misma técnica o una técnica similar como IIFE para crear un alcance local y crear variables que no se filtren al espacio global. Entonces, los cierres y el IIFE son conceptos diferentes. Lo que se está utilizando es IIFE. Cierre, realmente no importa si existe o no en este caso. Será mejor si usamos y propagamos el concepto correcto.

Todos 5 comentarios

Quizás en C no hay cierre, pero en JavaScript "Un IIFE se usa a menudo para crear un alcance para encapsular módulos. Dentro del módulo hay un alcance privado que es autónomo y está a salvo de modificaciones accidentales o no deseadas. Esta técnica, llamada módulo patrón, es un poderoso ejemplo del uso de cierres para administrar el alcance ".

http://www.sitepoint.com/demystifying-javascript-closures-callbacks-iifes/

ese es un concepto incorrecto. Aislar las variables locales dentro de un ámbito local es IIFE y no tiene nada que ver con un cierre en absoluto.

Estoy (más o menos) de acuerdo con @jianlin aquí. Por lo general, no hay cierres involucrados en el registro de un servicio / controlador / filtro / directiva / etc. de Angular dentro de un IIFE (como se sugiere en esta guía).

Un IIFE se usa a menudo para crear un alcance para encapsular módulos

@MAustinMMDP , debido a que _ "se usa con más frecuencia" _, no significa que se use _todas las veces_.
Angular tiene su propio sistema de módulos, por lo que (hasta donde entiendo esta guía de estilo) los IIFE no se utilizan como un medio para encapsular módulos, sino como una forma de aislar variables locales (por ejemplo, declaraciones de función) del contexto global.

En ese sentido, la cita de http://www.sitepoint.com/demystifying-javascript-closures-callbacks-iifes/ es correcta (en general) pero irrelevante (en este caso particular).

en realidad, la línea en SitePoint debería decir algo como:

Un IIFE se usa a menudo para crear un alcance para encapsular módulos. Dentro del módulo hay un ámbito privado que es autónomo y está a salvo de modificaciones accidentales o no deseadas. Esta técnica, llamada patrón de módulo, es un poderoso ejemplo del uso de [alcance local, o una función con alcance local, o simplemente, una función] para administrar el alcance, y se usa mucho en muchas de las bibliotecas de JavaScript modernas.

lo que significa es:

el patrón de módulo, es un poderoso ejemplo de uso de un alcance local para evitar filtraciones en el alcance global.

Solo debería decir "Alcance"

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

amiceli picture amiceli  ·  7Comentarios

jusefb picture jusefb  ·  9Comentarios

sgbeal picture sgbeal  ·  7Comentarios

jansepke picture jansepke  ·  12Comentarios

philmerrell picture philmerrell  ·  10Comentarios