11
голосов
9ответов
2626 просмотров

Может ли кто-нибудь объяснить мне, что такое закрытие на реальном простом языке?

Возможный дубликат: Что такое «замыкания» в .NET? Я сейчас смотрю на лямбда-выражение, и слово «закрытие» продолжает появляться.Может ли кто-нибудь объяснить мне это на очень простом языке.

30
голосов
4ответов
14276 просмотров

Связывание переменных и цикл JavaScript

Рассмотрим такой цикл: for(var it = 0; it < 2; it++) { setTimeout(function() { alert(it); }, 1); } Результат: => 2 => 2 Я бы хотел, чтобы это было: 0, 1. Я вижу два способа исправить это: Решение №1 Этот основан на том факте, что мы можем передавать д...

0
голосов
3ответов
704 просмотров

Проблема с закрытием?- передача текущего значения переменной

Я пытаюсь передать текущее значение переменной при нажатии на динамически сгенерированный «узел» навигации.Это должно быть просто целое число, но оно всегда приводит к значению последнего узла ... пробовали разные методы для передачи значения, настраиваемый прослушиватель событий, установщик, но...

0
голосов
1ответов
180 просмотров

Оператор Groovy FindAll для поиска несуществующих значений

Я пытаюсь создать оператор Groovy для поиска значений, которых нет в предварительно заполненном списке. Я использую SQL и думаю, что хочу сделать что-то вроде: myList = [a, b, c, d, e ... lots more data] sql.findAll("SELECT * FROM table WHERE code not in " + <myList>) У меня та...

7
голосов
4ответов
1570 просмотров

Проблема с делегатами в C #

В следующей программе DummyMethod всегда выводит 5. Но если вместо этого использовать закомментированный код, мы получим другие значения (например, 1, 2, 3, 4).Кто-нибудь может объяснить, почему это происходит? delegate int Methodx(object obj); static int DummyMethod(int i) ...

0
голосов
1ответов
71 просмотров

как получить анонимную функцию, чтобы сохранить исходную область видимости при вызове в обработчике событий

У меня есть настройка, при которой я получаю некоторую информацию в вызове ajax, затем я немедленно использую часть этой информации для другого вызова, а затем заполняю некоторые поля. Проблема в том, что я не уверен, как создать анонимную функцию, чтобы она могла вызывать this.plantName. ...

1
голосов
2ответов
190 просмотров

Можно ли вызвать функцию, определенную внутри замыкания?

В следующем коде я могу вызвать baz.Также где-то еще я читал «JavaScript имеет область действия на уровне функций».Я знаю, я где-то путаюсь.Кто-нибудь может заставить меня понять, пожалуйста? /* An anonymous function used as a closure. */ var baz; (function() { var foo = 10; var bar =...

2
голосов
1ответов
1119 просмотров

вызов функций F # из C # и получение исключений с нулевой ссылкой

Я использую Visual Studio 2008 с установленным F # CTP за октябрь 2009 г. Я пытаюсь вызвать код F # из моей программы на C #. Кажется, что большинство типов функций F # работают, но некоторые из них не инициализируются в F # и выдают исключения NullReferenceExceptions. Это делают замыкания и ...

3
голосов
3ответов
777 просмотров

Является ли закрытие Python хорошей заменой для `__all__`?

Можно ли использовать замыкание вместо __all__, чтобы ограничить имена, отображаемые модулем Python? Это предотвратит случайное использование программистами неправильного имени для модуля (import urllib; urllib.os.getlogin()), а также позволит избежать загрязнения пространства имен «from x impor...

6
голосов
2ответов
2003 просмотров

Механизмы Java при использовании в замыканиях lambdaj

Lamdbaj позволяет определять замыкания на языке Java, можно найти различные примеры здесь Мой вопрос касается используемых механизмов Java, например, для определения замыкания println, используется следующий код: Closure println = closure(); { of(System.out).println(var(String.class)); ...

2
голосов
1ответов
81 просмотров

Проблемы с закрытием и методом, определенным в другом месте

Я новичок в Javascript, поэтому, возможно, использую не точную терминологию. Предположим, я определяю литерал объекта как таковой. var myObj = { someMethod:function() { //can we have access to "someValue" via closure? alert(someValue); } } Затем мы назначаем функцию ...

13
голосов
4ответов
1305 просмотров

Это примеры замыканий C #?

Я до сих пор не совсем понимаю, что такое замыкание , поэтому я опубликовал эти два примера и хочу знать, являются ли оба этих примера замыканиями или нет? Пример A: List<DirectoryInfo> subFolders = new List<DirectoryInfo>(); Action<string> FilterSubFoldersStartA = ...

2
голосов
1ответов
810 просмотров

In Groovy SwingBuilder, how do I attatch a closure to a JTable that fires when a cell is selected?

I have a JTable being constructed via Groovy's SwingBuilder. I'd like to attach a closure to the table that fires when a cell is selected, but I can't seem to find the right hook. How do I do that?

6
голосов
3ответов
1133 просмотров

Why are closures suddenly useful for optimizing programs to run on multiple cores?

I read an article that claims that closures (or "blocks") are a useful weapon in the "War on Multicores", because [...] they allow you to create units of work, which each have their own copy of the stack, and don’t step on each others toes as a result. What’s more, you can pass these ...

7
голосов
3ответов
2994 просмотров

Passing values to onclick

If I create a whole lot of HTML elements using a loop, like for (i= 1; i < 100; i++) { var my_element = document.createElement ("td"); row.appendChild (my_element); my_element.onclick = function () {my_function (i)); } then when the element is clicked, the value of i passed to m...

2
голосов
5ответов
571 просмотров

JavaScript Variable Scope

I'm having a problem with some JavaScript code. Script setTimeout(function() { for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, i * 200); } }, 200); Outputs 5, 5, 5, 5, 5 instead of 1, 2, 3, 4, 5 I can kind of understand why thi...

21
голосов
3ответов
15237 просмотров

How does a function in a loop (which returns another function) work?

I've been trying to assign a function to onclick event of a dynamically created "a" tag in JavaScript. All of the tags are created in a loop as follows: for ( var i = 0; i < 4; i++ ) { var a = document.createElement( "a" ); a.onclick = function( ) { alert( i ) }; document.getElementById(...

730
голосов
42ответов
646708 просмотров

Static variables in JavaScript

How can I create static variables in Javascript?

0
голосов
2ответов
776 просмотров

Emacs Actionscript 3 indentation for functions defined inline in an arglist

I'm using the actionscript-mode-connors.el for indenting Actionscript 3 code in emacs. I have most things figured out, but one thing bothering me is when I use an inline closure as a function argument, the indentation of the interior of the function is screwed up. For example: var foo:int = so...

0
голосов
3ответов
922 просмотров

PHP Import Foreign Class' Method into MyClass

Wondering if this is possible in PHP Land: Let's say I have a class as follows: class myClass{ var $myVar; ... myMethod(){ $this->myVar = 10; } } and another class: class anotherClass { ... addFive(){ $this->myVar += 5; } } The 'anotherClass' is 3500 l...

54
голосов
8ответов
33567 просмотров

Example of a circular reference in Javascript?

I was wondering if anyone has a good, working example of a circular reference in javascript? I know this is incredibly easy to do with closures, but have had a hard time wrapping my brain around this. An example that I can dissect in Firebug would be most appreciated. Thanks

11
голосов
5ответов
14199 просмотров

How to store local variables in jQuery click functions?

I'm trying to figure out how to store external variable values in the functions created during jQuery's click() event. Here's a sample of the code I'm working with now. for(var i=0; i<3; i++){ $('#tmpid'+i).click(function(){ var gid = i; alert(gid); }); } <div id="...

3
голосов
3ответов
860 просмотров

Problem with JavaScript closure

Hey guys, I am stuck at the following code. At first I'll describe the use-case: The function "addPreset" gets called with an instance of ColorGradient. When calling this.listController.addItem(...) a callback function named onSelect ist supplied, which gets called everytime the onSelect-event on...

223
голосов
5ответов
70068 просмотров

Javascript infamous Loop issue?

I've got the following code snippet. function addLinks () { for (var i=0, link; i<5; i++) { link = document.createElement("a"); link.innerHTML = "Link " + i; link.onclick = function () { alert(i); }; document.body.appendChild(link); ...

19
голосов
3ответов
7740 просмотров

Erlang: Why does this fail with a 'badarith' exception?

Is it possible to implement a closure in Erlang? For example, how would I translate this snippet from Scheme? (define (make-adder n) (lamdba (x) (+ x n))) I've tried the following, but I'm clearly missing something. make_adder(n) -> fun (x) -> x + n end. Compiling this gives th...

4
голосов
4ответов
2861 просмотров

C++ closures and templates

We all know you can simulate closures in C++98 by defining local structs/classes inside a function. But is there some reason that locally defined structs can't be used to instantiate templates outside of the local scope? For example, it would be really useful to be able to do things like this: ...

2
голосов
4ответов
816 просмотров

Why can't a Python class definition assign a closure variable to itself?

Why doesn't the following work in Python? def make_class(a): class A(object): a=a return A

5
голосов
4ответов
2173 просмотров

How different programming languages use closures?

To my knowledge, combined with the knowledge of others, among the mainstream languages Objective C C# VB.net Java Python Ruby Javascript Lisp Perl have closures and anonymous functions. Plain C/C++ doesn't have either of those. Do closures in these languages have the same semantics? How impo...

2
голосов
1ответов
1224 просмотров

Lua Closures in implementing a DSL

Lua has a really nice no-parenthesis call syntax that coupled with function closures allow me to write the following local tag = 1 function test(obj) return function(str) return function (tbl) tbl.objtag = tag tbl.objname = st...

7
голосов
5ответов
2245 просмотров

javascript closure immediate evaluation

Consider the following Javascript code: var a = []; var f = function() { for (var i = 0; i < 3; i++) { a.push(function(){alert(i)}); } for (var j = 0; j < 3; j++) { a[j](); } }; The alerts print out '3' all three times. I want a different behaviour - in ...