18.04.2009, 18:40
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сообщение от kefi
|
так если не слепые, то зачем себя вести, как слепые ?
|
Вы тон смените, пожалуйста, а то я воздержусь от объяснений и рассказов Повторю, всё дело в вопросе (в качестве вопроса). Ну, если разобрались, значит хорошо.
Сообщение от kefi
|
Установить Замыкание -
значит использовать Имя Замыкаемой функции или ссылку на нее
в выражении (возможно опосредованно через его вычисление).
|
Слово "установить" здесь - что есть, что нет. Замыкание - это:
1. либо все функции (в виду единого механизма Scope chain);
2. либо, когда функция: (а) имеет свободные переменные, (б) переживает свой контекст.
Всё. Вот эти все "Защитник", "Установить" и т.д. - только больше Вас самого путают.
|
|
18.04.2009, 19:36
|
Кандидат Javascript-наук
|
|
Регистрация: 12.03.2009
Сообщений: 148
|
|
Цитата:
|
Вы тон смените, пожалуйста,
|
Ну как обычно - непонимание порождает агрессию, хотя оно всего лишь непонимание не более того. Не подумайте, что я Вам неблагодарен за Ваше участие, напротив(хорошо видно?). Но я думаю, что :
1) Вам нужно, быть более внимательным к тому, с кем Вы беседуете, чтобы реагировать адекватно .
2) Не надо делать вид, что Вы оказываете одолжение тому, с кем беседуете. Я исхожу из того, что Вам это интересно, иначе бы Вы не отвечали, хотя Вы уже прежде пытались дать понять, что оказываете одолжение .
Короче, менять Вам самому тон или нет - решайте сами. Я со своей стороны просто могу ГАРАНТИРОВАТЬ, что я никогда не провоцирую и не собираюсь провоцировать личностные оценки , как бы Вам это НЕ КАЗАЛОСЬ.
больше самого меня путают. ничего не объясняющие, в отличие от моего объяснения, слова :
Цитата:
|
либо все функции (в виду единого механизма Scope chain);
|
Я , конечно, остаюсь новичком, но пока я не встречусь с противным, буду полагать, что говорить о функциях , как о замыканиях бессмысленно, т.к. они НЕ вызывают тех проблем ,что я описал в своих предыдущих постах.
А что касается п2. в определении замыкания , то оно просто неверно :
По нему функция A в след примере будет замыканием:
var g=1 ; function A() { alert(g) }; // Какие проблемы замыкания Вы можете описать в этой программе? Их нет, как и нет замыкания.
Последний раз редактировалось kefi, 18.04.2009 в 19:38.
|
|
18.04.2009, 20:20
|
...
|
|
Регистрация: 09.03.2008
Сообщений: 216
|
|
Сообщение от kefi
|
и не собираюсь провоцировать личностные оценки
|
Личностная оценка неизбежна. Это происходит само собой, в процессе профессионального обсуждения предмета ообычно сразу становится ясен уровень владения этим предметом. К примеру, я бы охарактеризовал kefi, как "энергичного ньюба", от "вялого ньюба" он отличается более высоким уровнем интереса и активностью в дискуссии, которую готов поддерживать. Это можно только приветствовать, пока "энергичный ньюб" не превращается в "отрицающего всё на свете ньюба" - стандарт ему ничего не объясняет, на вопросы его никто не отвечает или отвечают не то, и вообще, не надо было на них отвечать, т.к. он и так всё знает и даже объясняет...
Сообщение от kefi
|
Их нет, как и нет замыкания.
|
Преждевременный вывод. Вам нужно вернуться назад и всё-таки разобраться с контекстами и scope chain, после того, как вы поймёте то, как это происходит в javascript, вопрос о замыканиях отпадёт сам собой.
|
|
18.04.2009, 20:32
|
Кандидат Javascript-наук
|
|
Регистрация: 12.03.2009
Сообщений: 148
|
|
Сообщение от Zeroglif
|
я бы охарактеризовал kefi
|
Спасибо за классификацию меня как объекта, субъекта, особь ... , которая осмеливается что-то там объяснять доступное только вам посвященным .
Но прежде , чем выносить суждение о
Цитата:
|
Преждевременности выводов
|
неплохо бы было понять аргументы , ах ну да, Вы ж не опуститесь на уровень понимания особи.
|
|
18.04.2009, 20:39
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сообщение от kefi
|
1) Вам нужно, быть более внимательным к тому, с кем Вы беседуете, чтобы реагировать адекватно .
|
Спасибо, учту.
Сообщение от kefi
|
Я исхожу из того, что Вам это интересно, иначе бы Вы не отвечали
|
"Интересный", всё-таки, подход. "Логично-прагматичное потребление".
Если Вы под "Вам это интересно" подразумеваете "полезную информацию в мою сторону" - так я и так знаю эту информацию, поэтому с этой точки зрения, если отстраниться, мне беседа может быть абсолютно неинтересной.
А вот, если мы возьмём просто беседу, либо беседу в плане помощи тому, кто хочет понять и просит поделиться информацией тех, кто знает - это всегда пожалуйста, всегда интересно. Но, пожалуйста, только без фраз, несущих смысл a-ля "давайте-ка, быстро объясните мне и удовлетворите меня ответами, и нечего себя тут как слепые вести, я поставил вам вопросы, решайте их, вы же только этим занимаетесь и не тратите своё время, когда я одно и то же, выдуманное мной, спрашиваю. Это же так? Конечно так, иначе бы вы не отвечали!". Если я ошибся и мне это, действительно, показалось, мы, конечно, продолжим.
Но, довольно демагогии, надеюсь, мы поняли друг друга
А теперь, вернёмся к JS.
Сообщение от kefi
|
но пока я не встречусь с противным, буду полагать, что говорить о функциях , как о замыканиях бессмысленно
|
Абсолютно ваше право не принимать/не видеть реальное положение дел. Но есть ли в этом толк - вопрос спорный. Описание этого положения (как одну из теорий о замыканиях в JS) можно найти в ссылке выше.
Сообщение от kefi
|
А что касается п2. в определении замыкания , то оно просто неверно :
|
Туда же.
Сообщение от Dmitry A. Soshnikov
|
Какие проблемы замыкания Вы можете описать в этой программе? Их нет, как и нет замыкания.
|
А функция становится замыканием, когда у неё появляются какие-то проблемы?
P.S.: да, и...
- никогда не делаю вид, что оказываю одолжение при беседе, поэтому, кажется - Вам;
- не беседую, если вижу потребительский подход.
update:
Сообщение от kefi
|
доступное только вам посвященным .
|
Сообщение от kefi
|
ах ну да, Вы ж не опуститесь на уровень понимания особи
|
Слушайте, хватит демагогии. Отстранитесь от этого и сконцентрируйтесь на предмете. Никто из беседующих (включая Вас, я надеюсь) так не думает.
Последний раз редактировалось Dmitry A. Soshnikov, 18.04.2009 в 20:42.
|
|
18.04.2009, 20:51
|
...
|
|
Регистрация: 09.03.2008
Сообщений: 216
|
|
Сообщение от kefi
|
спасибо за классификацию
|
Пожалуйста, так поступает любой. Иначе людям было бы тяжело находить точки соприкосновения и дискуссия была бы роботизирована ака "без эмоциональной окраски".
Сообщение от kefi
|
которая осмеливается что-то там объяснять
|
Глупости, все никнеймы равны.
Сообщение от kefi
|
неплохо бы было понять аргументы
|
Поднимите тему про замыкания здесь, на хабре, погуглите "zeroglif замыкание", это много обсуждалось на винграде. Там и аргументы, и контрррррр...
Сообщение от kefi
|
Вы ж не опуститесь
|
Вы периодически на форуме почемучкаете, а я готов в ответ потомучкать, мне и интересно, и полезно, пока я вижу взаимопонимание. Если же вы упёрлись в "поиск универсального примера, который всё объясняет" и в упор не видите аргументов, не способны переварить стандарт, то это "глухой со слепым"... оно нам нужно?
|
|
18.04.2009, 22:08
|
Кандидат Javascript-наук
|
|
Регистрация: 12.03.2009
Сообщений: 148
|
|
Сообщение от Dmitry A. Soshnikov
|
Замыкание - это:
1. либо все функции (в виду единого механизма Scope chain);
2. либо, когда функция: (а) имеет свободные переменные, (б) переживает свой контекст.
|
Как Вы понимаете смысл термина Замыкание и как он связан с русским словом 'Замыкание' ?
В чем проявляется Замыкание для любой функции из п.1 и для любой из п.2 ? Например, из этой программы : var g=1 ; function A() { alert(g) };
PS. Замечу, что называть ВСЕ функции Замыканиями логически означает уничтожение этого термина, т.к. становится достаточном говорить просто о Функциях, ну или, наоборот, становится ненужным термин Функция.
Последний раз редактировалось kefi, 18.04.2009 в 22:21.
|
|
18.04.2009, 23:18
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сообщение от kefi
|
с русским словом 'Замыкание' ?
|
http://ru.wikipedia.org/wiki/Замыкание
Сообщение от kefi
|
В чем проявляется Замыкание
|
Ещё раз - Замыкание - это... - там достаточно полно описано. Вы сказали, что там непонятно. Что именно не понятно?
Ещё: http://www.jibbering.com/faq/faq_notes/closures.html
Сообщение от kefi
|
PS. Замечу, что называть ВСЕ функции Замыканиями логически означает уничтожение этого термина, т.к. становится достаточном говорить просто о Функциях, ну или, наоборот, становится ненужным термин Функция.
|
Касательно классификации и терминологии - естественно. Однако, мы говорим о конкретной технологии (JavaScript) и об одной из теорий, связанной с замыканиями в JS. Конечно же, теория рассматривается в неком аспекте, в неком ключе. За этот аспект принимается механизм Scope chain'a и разрешения имён свойств/переменных. В этом ключе, обращение к свободной переменной одинаково на любых видах функций.
|
|
18.04.2009, 23:35
|
...
|
|
Регистрация: 09.03.2008
Сообщений: 216
|
|
Последний раз редактировалось Zeroglif, 18.04.2009 в 23:46.
|
|
18.04.2009, 23:47
|
Кандидат Javascript-наук
|
|
Регистрация: 12.03.2009
Сообщений: 148
|
|
2 Dmitry A. Soshnikov > Вообще вопросы были заданы конкретно Вам, Вы же отсылаете к ссылкам, которые я давно уже читал, кроме jibbering.com, в которой при беглом просмотре я обнаружил гораздо больше моего понимания , чем Вашего относительно того, что :
Замыкание - это:
1. либо все функции (в виду единого механизма Scope chain);
2. либо, когда функция: (а) имеет свободные переменные, (б) переживает свой контекст.
:
A closure is formed by returning a function object that was created within an execution context of a function call from that function call and assigning a reference to that inner function to a property of another object. Or by directly assigning a reference to such a function object to, for example, a global variable, a property of a globally accessible object or an object passed by reference as an argument to the outer function call. e.g:-
function exampleClosureForm(arg1, arg2){
var localVar = 8;
function exampleReturned(innerArg){
return ((arg1 + arg2)/(innerArg + localVar));
}
/* return a reference to the inner function defined as -
exampleReturned -:-
*/
return exampleReturned;
}
var globalVar = exampleClosureForm(2, 4);
ну бог с ним со всем пока ...
|
|
|
|