Angular-styleguide: JavaScript Closure deve ser renomeado apenas IIFE, porque Closure e IIFE são duas coisas distintas.

Criado em 26 mar. 2016  ·  5Comentários  ·  Fonte: johnpapa/angular-styleguide

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

Ele menciona fechamentos de JavaScript e IIFE. Mas usar o IIFE para criar um escopo local para evitar vazamento para o espaço global não tem nada a ver com fechamentos.

Na linguagem C, não há fechamento, mas podemos usar a mesma técnica ou uma técnica semelhante como IIFE para criar um escopo local e criar variáveis ​​que não vazarão para o espaço global. Portanto, fechamentos e IIFE são conceitos diferentes. O que está sendo usado é o IIFE. Encerramento, realmente não importa se existe ou não neste caso. Será melhor se usarmos e propagarmos o conceito correto.

Todos 5 comentários

Talvez em C não haja fechamento, mas em JavaScript "Um IIFE é frequentemente usado para criar escopo para encapsular módulos. Dentro do módulo, há um escopo privado que é independente e seguro contra modificações indesejadas ou acidentais. Esta técnica, chamada de módulo padrão, é um exemplo poderoso de uso de fechamentos para gerenciar o escopo ".

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

esse é um conceito incorreto. Isolar variáveis ​​locais dentro de um escopo local é IIFE e não tem nada a ver com fechamento.

Eu (meio que) concordo com @jianlin aqui. Normalmente não há fechamentos envolvidos no registro de um serviço / controlador / filtro / diretiva / etc Angular dentro de um IIFE (como sugerido neste guia).

Um IIFE é frequentemente usado para criar escopo para encapsular módulos

@MAustinMMDP , porque _ "é frequentemente usado" _, não significa que seja usado _todas as vezes_.
O Angular tem seu próprio sistema de módulo, então (pelo que eu entendo este guia de estilo) IIFEs não são usados ​​como um meio para encapsular módulos, mas como uma forma de isolar variáveis ​​locais (por exemplo, declarações de função) do contexto global.

Nesse sentido, a citação de http://www.sitepoint.com/demystifying-javascript-closures-callbacks-iifes/ é correta (em geral), mas irrelevante (neste caso específico).

na verdade, a linha no SitePoint realmente deveria dizer algo como:

Um IIFE é freqüentemente usado para criar escopo para encapsular módulos. Dentro do módulo, há um escopo privado que é independente e seguro contra modificações indesejadas ou acidentais. Esta técnica, chamada de padrão de módulo, é um exemplo poderoso de uso de [escopo local, ou uma função com escopo local, ou simplesmente, uma função] para gerenciar o escopo e é amplamente usada em muitas das bibliotecas JavaScript modernas

o que significa é:

o padrão de módulo é um exemplo poderoso de uso de um escopo local para evitar vazamento no escopo global.

Deve apenas dizer "Escopo"

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

samithaf picture samithaf  ·  12Comentários

majj picture majj  ·  4Comentários

MrOutput picture MrOutput  ·  5Comentários

robrothedev picture robrothedev  ·  6Comentários

annabellor picture annabellor  ·  9Comentários