• На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Александр, я согласен с вами. С некоторыми деревянными бесполезно спорить, кто-то просто не способен впитывать новую информацию. Но мне нужна была эта ветка, она заставила меня (да и не только меня) хорошенько проработать этот вопрос, поэтому впредь могу смелее общаться на эту тему. Скажем, на тот же вопрос, могу ответить: "Вам минимальный набор с замыканием лексического окружения глобального контекста или более наглядный пример - с внешней функцией/циклом и переменными в её лексическом окружении?". Ну, или если сразу увижу, что интервьюер туповат, а работа сильно будет нужна, покажу сразу пример с внешней функцией. Просто соглашаться с дураком гораздо проще, когда точно знаешь, что он не прав, чем в том случае, когда про себя думаешь: "блин, а может и правда я где-то не так понял замыкания". Ну т.е. мне просто грубо говоря нужно было узнать истину (и для психологического комфорта на собеседованиях, и чтобы лишний раз убедиться, что я действительно правильно понимаю доки на английском), и я её узнал (спасибо и вам в том числе). А уж на следующих интервью я сориентируюсь (т.е. разумеется, что не собираюсь теперь всех переобучать, буду смотреть по ситуации). И да, эта ветка думаю поможет всем начинающим также хорошо проработать вопрос замыкания.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Матвей Румынин,
    крайне спорный пример и утверждение что это тоже замыкание

    Ну так раз он спорный, так и поспорьте. А то пока ни единого аргумента, зато много фантазий. Есть чёткое определение, выведенное инженерами. С этим определением солидарны разработчики всего мира и везде его ретранслируют. Если у вас есть серьёзные доводы для его опровержения, приведите их. Наверняка в рукаве есть какой-то козырь, наверняка где-то таится у вас этот монументальный труд, который покажет кузькину мать всем этим инженеришкам-зазнайкам, правда? Я думал вы вчера его выложите, но не выложили. Скорее всего просто недооформлен, наверняка там много рукописей, которые нужно структурировать, привести в человеческий вид, чтобы уж как жахнуть, так чтобы со стульев все попадали. В общем, правда, очень-очень ждём. Я просто отказываюсь верить, что вы пришли с пустыми руками, такого быть не может, это было бы сумасшествием. Даже у Юрия Лозы худо-бедно, но какие-то доказательства были... Ждём и ваши.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Матвей Румынин
    не нужно так агрессивно себя вести. Создается впечатление, что вы хотите самоутвердиться после провала на собесе

    Покажите, какая часть моего ответа вам показалась агрессивной? А то такие нежные вдруг все стали, когда аргументы все оказались забракованы.

    Имелось ввиду, что такая интерпретация в отрыве этого определения из контекста статьи неверна, имхо.

    Ну вот я про то и говорю. Если вы не согласны с определением, а только с примерами, то следуя вашей же логике, велосипеды могут быть только трёхколёсные.

    Если чье-то мнение не совпадает с вашим, это не повод так себя вести - с вами просто перестанут общаться. При этом, не важно, чье именно мнение более точное или верное.

    Классика. Аргументов нет - пали неглядя нравоучениями.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Матвей Румынин
    не нужно выдергивать определение из контекста статьи, тем более оно не верное, имхо. Далее там все подробно разжевано, включая примеры

    Эпичненько. Т.е. ссылаетесь на статью, но при этом не согласны с главным определением замыкания в нём? Странно, не? Логической ошибки никакой нет случаем? Какой смысл тогда ссылаться на неё? В таком случае вы не согласны со всей статьёй.
    Определения для того и даны, чтобы понимать, что подходит под них, а что не подходит.
    Далее там все подробно разжевано, включая примеры

    И что же там разжёвано? Да, для наглядности как всегда пихают функции в функции, чтобы было понятнее, на то они и примеры. Там нигде не говорится о том, что мой пример - не замыкание.

    Это всё равно что прочитать определение велосипеда:
    Велосипе́д — колёсное транспортное средство (или спортивный снаряд), приводимое в движение мускульной силой человека через ножные педали или (крайне редко) через ручные рычаги.

    Затем увидеть рядом с этим определением ПРИМЕР трёхколесного велосипеда, и тут же бежать всем доказывать, что двухколёсные - и не велосипеды вовсе. А если будут говорить: "ну смотрите, вот ведь, в определении говорится - «колёсное транспортное средство» - значит и двухколёсные тоже подходят", то отвечать что-нибудь в духе "не надо вырывать определение из статьи, тем более оно неправильное, имхо, смотрите только на примеры - там ТРИ колеса, значит НЕ МЕНЬШЕ!".

    Ну тактика понятна, чё...
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Благодарю вас за тщательное изучение вопроса и железобетонные аргументы.
    Теперь не осталось и капли сомнения в том, что был прав.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Adamos,
    контекст любой функции - это стек, в глубине которого - глобальный контекст.

    ...который создаёт лексическое окружение.
    И никакого замыкания (внедрения внешнего локального контекста в стек контекстов функции) в этом коде - нет.


    Самое главное в расследовании - не выйти на самого себя))))))))
    Замыкание на лексическом окружении есть, а самого замыкания - НЕТ? Вот ведь парадокс!!)))))))))
    Даже не знаю, бог конечно простит и убогих, но вот фантастов...
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Adamos, причём здесь требуется/не требуется замыкание - оно создаётся, хочешь ты этого или нет.
    https://stackoverflow.com/a/111111/6230467 - объяснение для самых отбитых, кому не понять даже на пальцах.
    Может уже хватит рогом упираться в неопровержимые факты?
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    true, смешались кони, люди...
    Теперь сборщик мусора. Каким боком он здесь?
    В контексте терминологии о замыканиях он как пятое колесо к телеге.
    Замыкание основано на функции и её лексическом окружении. Ещё раз даю ссылку:
    https://stackoverflow.com/a/111111/6230467
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    true, Ты просто тупо не понимаешь, что замыкание - это область, а не абстрактные переменные. Нажми F12 в Chrome, там будет тебе область так и названа - Closure. Если бы это были какие-то особые замкнутые переменные, то это были бы переменные с дополнительным свойством: "closure: true", и вообще это бы были объекты. Что за ещё "замкнутые переменные"? О чём ты говоришь??? Как ты определяешь, замкнутая она или нет? По фазе луны чтоли? НЕТ! Ты определяешь это из их окружения, т.е. ГДЕ ОНИ НАХОДЯТСЯ.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    true, вы почему-то решили вывести из цепочки причинно-следственную связь.
    Замыкание с переменными это СЛЕДСТВИЕ того, что функция образовала ОБЛАСТЬ ЗАМЫКАНИЯ с лексическим окружением, в котором находятся эти переменные. Это везде пишут, и кантор, и вот ссылку недавно дали:
    https://stackoverflow.com/a/111111/6230467
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Спасибо. Ну вот тут Василий уже писал, что придётся использовать ту терминологию, которую используют в организации. Соответственно, тут уже просто решать, прогибаться полностью под них и слепо верить их решениям, какие бы они ни были, или попытаться что-то объяснить и вывести какое-то общее определение, или, если видно, что в компании вообще по знаниям и навыкам всё плохо, бежать оттуда, пока не приняли на работу (т.к. как вы сами написали не будет роста как программист), т.е. здесь уже вопрос насколько сильно нужна работа.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Наконец-то адекватные замечания подъехали.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    во внешней функции может не быть переменных
    и функция может не ссылаться на внешние переменные
    тогда нет коротких замыканий

    Наличие/отсутствие переменных не играет никакой роли.
    Замыкание создаёт локальное окружение функции с её лексическим окружением. Лексическое окружение есть всегда, не важно, есть там переменные или нет. И замыкание тоже есть всегда. На собесе можно вообще по идее было не указывать переменную x, просто указал для наглядности.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Александр, причём здесь сколько голосов. Я показал, что вот это вот "общепринято" есть только в вашей голове, а по факту голосов больше за ответ, где говорится о том, что все функции в JS - замыкания. Вот я и спрашиваю - у кого "общепринято"? О каких мифических программистах говорите? На стэковерфлоу отвечают так, и Кантор говорит так (а это самый авторитетный ресурс в рунете), но вы говорите что "общепринято" обратное. Скорее всего выдаёте желаемое за действительное.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Strabbo, интересно где ты увидел обиду у меня))) Мне это всё детский сад напоминает какой-то) Спрашиваю аргументы, в ответ - учи матчасть. Показываю матчасть у Кантора, в ответ: это не та матчасть, учи другую матчасть (очевидно, у индусов).

    А я и не ищу работу. В данный момент это ты ходишь на собеседования.

    Ты написал - Я бы тебя не взял (очевидно, если БЫ я к тебе пришёл)
    Я ответил - Я бы тебя не взял (очевидно, если БЫ ты ко мне пришёл).
    Непонятно, зачем мне информация о том, ищещь ты что-то, или не ищешь *facepalm*

    Боже, такое ощущение, что попал в какую-то секту)))
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Strabbo, я бы тоже тебя на работу не взял.
    Я то как раз умею слушать, что другие говорят. Вот Кантор говорит, что все функции - замыкания. И наглядно (БУКВАЛЬНО НА ПАЛЬЦАХ) объяснил, почему это так. Но не до всех, очевидно, доходит... Скорее всего до тех, кто учился по курсам индийских инфобизнесменов, никогда не дойдёт.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    WapSter, то, что в глобальном контексте сложнее увидеть замыкание, не отрицает его наличие, разве нет? Я не знаю у кого где там "общепринято", но и Кантор и вот этот товарищ считают так же, как и я (да и много где об этом говорится, вот этот ответ набрал больше голосов). Ну, значит вроде как уже не "общепринято", не?
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    true, в JS все функции - это объекты со своим окружением, как и глобальный контекст - тоже обычный объект. функция, объявленная в гл. контексте держит связь с переменными гл. окружения. Разве нет?
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    тут просто получается кто в лес, кто по дрова...
    раз каждый трактует по-своему.
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @SantaDelToro Автор вопроса
    Сергей Горностаев, глупости. ни один из них ничего про петли не говорил.