Articles of fechamentos de

É verdade que toda function em JavaScript é um encerramento?

Eu entendo que toda function em JavaScript é um object de primeira class e tem uma propriedade interna [[scope]] que hospeda os registros de binding das variables ​​livres da function. No entanto, existem dois casos especiais. A function criada pelo construtor Function também é um encerramento? O object de function criado pelo construtor Function é […]

Acesso ao fechamento modificado (2)

Esta é uma extensão da questão do Access to Modified Closure . Eu só quero verificar se o seguinte é realmente seguro o suficiente para uso em produção. List lists = new List(); //Code to retrieve lists from DB foreach (string list in lists) { Button btn = new Button(); btn.Click += new EventHandler(delegate { […]

Javascript Closures e ‘this’

Eu tenho um problema com um object que criei que é algo como isto: var myObject = { AddChildRowEvents: function(row, p2) { if(document.attachEvent) { row.attachEvent(‘onclick’, function(){this.DoSomething();}); } else { row.addEventListener(‘click’, function(){this.DoSomething();}, false); } }, DoSomething: function() { this.SomethingElse(); //<– Error here, object 'this' does not support this method. } } O problema é que quando […]

Como você testa funções e fechamentos para igualdade?

O livro diz que “funções e fechamentos são tipos de referência”. Então, como você descobre se as referências são iguais? == e === não funcionam. func a() { } let å = a let b = å === å // Could not find an overload for === that accepts the supplied arguments Aqui está como […]

Qual é a diferença entre um ‘encerramento’ e um ‘lambda’?

Alguém poderia explicar? Eu entendo os conceitos básicos por trás deles, mas muitas vezes os vejo usados ​​de forma intercambiável e fico confuso. E agora que estamos aqui, como eles diferem de uma function normal?

Como executo retornos de chamada asynchronouss no Playground?

Muitos methods Cocoa e CocoaTouch têm callbacks de completação implementados como blocos em Objective-C e Closures em Swift. No entanto, ao experimentá-los no Playground, a conclusão nunca é chamada. Por exemplo: // Playground – noun: a place where people can play import Cocoa import XCPlayground let url = NSURL(string: “http://stackoverflow.com”) let request = NSURLRequest(URL: url) […]

Por favor, explique o uso de fechamentos de JavaScript em loops

Eu li uma série de explicações sobre fechamentos e fechamentos dentro de loops. Eu tenho dificuldade em entender o conceito. Eu tenho este código: Existe uma maneira de reduzir o código tanto quanto possível para que o conceito de fechamento possa ser esclarecido. Estou tendo dificuldade em entender a parte em que o i está […]

var self = isso?

Usando methods de instância como retornos de chamada para manipuladores de events, o escopo é alterado de “Minha instância” para “Tudo o que é chamado de retorno de chamada” . Então meu código se parece com isso function MyObject() { this.doSomething = function() { … } var self = this $(‘#foobar’).bind(‘click’, function(){ self.doSomethng() // this.doSomething() […]

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 disable AccessToModifiedClosure if(Array.Exists(Assembly.GetExecutingAssembly().GetManifestResourceNames(), delegate(string name) { return name.Equals(files[i]); })) return Assembly.GetExecutingAssembly().GetManifestResourceStream(files[i]); // ReSharper restore AccessToModifiedClosure } O acima parece funcionar bem […]

O identificador foreach e os encerramentos

Nos dois trechos seguintes, o primeiro é seguro ou você deve fazer o segundo? Por segurança, quero dizer, cada thread é garantida para chamar o método no Foo da mesma iteração de loop na qual o thread foi criado? Ou você deve copiar a referência para uma nova variável “local” para cada iteração do loop? […]