Perguntas com a marcação «closures»

Um fechamento é uma função de primeira classe que se refere a (fecha sobre) variáveis ​​do escopo em que foi definido. Se o fechamento ainda existir após o final do escopo de definição, as variáveis ​​que ele fechará continuarão a existir também.

562
Fechamentos de JavaScript vs. funções anônimas

Um amigo meu e eu estamos discutindo o que é um fechamento em JS e o que não é. Nós apenas queremos ter certeza de que realmente entendemos corretamente. Vamos pegar este exemplo. Temos um loop de contagem e queremos imprimir a variável do contador no console atrasada. Portanto, usamos setTimeoute...

316
Acesso ao fechamento modificado

string [] files = new string[2]; files[0] = "ThinkFarAhead.Example.Settings.Configuration_Local.xml"; files[1] = "ThinkFarAhead.Example.Settings.Configuration_Global.xml"; //Resharper complains this is an "access to modified closure" for (int i = 0; i < files.Length; i++ ) { // Resharper...

249
O que os fechamentos de função (lambda) capturam?

Recentemente, comecei a brincar com o Python e descobri algo peculiar na maneira como os fechamentos funcionam. Considere o seguinte código: adders=[0,1,2,3] for i in [0,1,2,3]: adders[i]=lambda a: i+a print adders[1](3) Ele cria uma matriz simples de funções que recebem uma única entrada e...

216
Variável capturada em um loop em C #

Eu conheci uma questão interessante sobre c #. Eu tenho código como abaixo. List<Func<int>> actions = new List<Func<int>>(); int variable = 0; while (variable < 5) { actions.Add(() => variable * 2); ++ variable; } foreach (var act in actions) {...

197
Funções PHP recursivas anônimas

É possível ter uma função PHP recursiva e anônima? Esta é minha tentativa de fazê-lo funcionar, mas não passa o nome da função. $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5 ); Também sei que essa é uma...

182
var self = isso?

Usando métodos de instância como retornos de chamada para manipuladores de eventos altera o escopo de thispartir "Meu instância" para "Seja qual for chamado apenas o retorno de chamada" . Então, meu código fica assim function MyObject() { this.doSomething = function() { ... } var self = this...