Обновить
2
0
Dmitry Soshnikov@dsCode

Пользователь

Отправить сообщение
>> так они становятся глобальными и видны везде
> да ладно? а не в пределах видимости функции ли?
> var не влияет на глобальность.

var a = 10; — объявляет переменную в контексте и присваивает ей значение;

— если контекст — функция, то эта переменная будет видна в пределах функции (если только не будет замкнута);

— если глобальный контекст — везде;

Для этих двух контекстов переменная не может быть удалена посредством delete (в отличии от объявления свойства в глобальном объекте через a = 10 — эти «переменные» могут быть удалены (правда, не везде)). Так же есть контекст eval, там var'ы не получают {DontDelete} и, соотвественно, могут быть удалены.
> всё — объекты

Почти всё ;)

> «классы» — объекты

Если «классом» Вы образно назвали связку «конструктор + прототип», то да — обе эти сущности — объекты. А в теории ECMAscript, понятия «класс» нет.

> jQuery

А что ж так выборочно? :)
> было бы неплохо видеть действительно интересные статьи

А какие статьи были бы интересны? Какого уровня? Направления? Больше теоретические, углублённые или же — практические?
> Это и есть верный ответ.

Вернее, это наиболее полное использование этой конструкции (замыкание) в JS.

> Авторы ECMAscript просто сильно напутали с областью видимости. :)

Ничего они не напутали, механизм цепи скопов работает одинаково — для вложенных и глобальных функций. Так что, эта теория (все функции — замыкания; в JS) тоже имеет право на существование, правда, здесь интерес только теоретический.
Почему это, «конечно»?
> Далее, замыкания это такие функции, которые выполняются *в контексте*. Например (тут JS):

На самом деле (во всяком случае, в JS) можно выделить две теории:

— все функции — замыкания (в виду механизма цепи скопов);

— замыкание это: функция, которая (а) — имеет «на борту» свободные переменные и (б) — переживает свой лексический контекст;

Замыкания

* Это анонимные функции

Вот, жаль, что замыкание здесь описывается как обязательно анонимная функция. Вообще, в теории, анонимная функция — лишь частный случай замыкания; замыкание может быть и именованной функцией (но не в PHP).

Так же, можно отметить, что use создает локальную копию переменной из скопа выше (в отличии, например, от Javascript). Чтобы переменная ссылалась, нужно явно передавать её в use по ссылке (либо использовать модификатор global).
Ёпрст. Какого года статья? В 98% этих советов — при чём здесь jQuery? Чистого JS-кода для этих же действий будет столько же (а где-то меньше).

P.S.>:

> Кому не нравится jQuery?

шикарное начало для статьи :D (я знаю, что это перевод =), но тем не менее)
> а на поверку — всё это отмазки от ответственной самостоятельной профессиональной работы

У меня нет таких отмазок (да и вообще отмазок). Не понял, что ты имел в виду. А «наука» было сказано на это (что, поясняю, значило: «не хочется углубляться в изучение, когда можно быстро срубить бабло»):

> Прорыв делается гением в гараже. Или специалистом в исследовательском центре… Если же мы говорим о работе, за которую платят, есть четкие требования, вполне четкие сроки и деньги.
Ну, сто раз уже говорили про это. К тому же, человек сам признаётся, что «наука» его мало интересует в эти моменты, у него цель другая — в кротчайшие сроки получить деньги от заказчика.

@all:

Кому интересно, можете почитать одну из дискуссий на эту тему — javascript.ru/forum/offtopic/2813-storonnie-biblioteki-byt-ili-ne-byt.html
> Вы готовы увеличить размер страницы на 14 кБ ради собственного удобства вопреки удобству пользователя

Конструкциями, подобными этим — document.getElementById('something').style.color='#ffffff', Вы увеличите размер страницы на 140 Кб.

Пример не очень удачный. Вы хотели сказать, что можно сделать легче и лучше «общепризнанных и популярных» фреймворков (и это, естественно, так!), но привели пример не подходящий для контраргумента.
> Доморощенные Javascript-фреймворки

Что за хрень такое ещё?

> — зло

Что за «зло» ещё?

P.S.>: вечная «проблема» прикладных потребителей и идеологических создателей.
> Я так понимаю он реализован только в рельсах и с наскока его не перенесешь к себе.

Да, он реализован в Рельсах. Но почему не «перенесёшь к себе»? Ведь это обычная цепочка вызовов заaliasенных методов (через стандартные конструкции alias и alias_method) — можно и свою идеологию придумать (не только с with и without, как придумали в alias_method_chain, который имитирует работу декораторов).
Да, только в случае декораторов мы можем каждому методу навесить разные прокси (включая несколько декораторов для одного метода), тогда как при использование method_missing — у нас один «декоратор» на всех (можно, конечно, сделать проверку имени метода, и вызывать разные соответствующее действия, но это будет громоздко). Всё же, если говорить о декораторах, то здесь больше подойдёт паттерн alias_method_chain.
Вообще, суть декораторов, как раз-таки, в проксировании (аспектно-ориентированное программирование) В то время как основная задача method_missing — определение действия на случай, если объект не может сам ответить на сообщение. Но, как вариант, можно использовать method_missing для проксирования (что и делает автор статьи), но, повторю, основная идея — не в проксировании. Проксирующие же декораторы (в Питоне) вызываются всегда, независимо от того, есть такой атрибут у объекта или нет.
> через __getattribute__ (вызывается для всех свойств и методов, не только для отсутствующих)

а только для отсутствующих — __getattr__
> Чтобы бросить курить — надо просто не курить (: И ничего более. (:

Блестяще! :)

P.S.> на самом деле есть еще один пункт ;)

P.S.> я сам не курю с апреля 2008 года, до этого курил 11 лет по пачке-полторы в день. Бросил (вернее, избавился) в один день. Просто — перестал курить.
Да, я понимаю (и до этого понимал) о чём Вы говорите. Да, способ создания/копирования успешного образа может быть действенным, и может создать ряд приобретённых свойств («мы становимся теми, кем себя ощущаем»). Главное здесь, не переусердствовать и не скультивировать «маску», которая на людях будет одной (выставляя свои слабые стороны за сильные), а в глубине — другой, настоящей, со своими истинными сильными сторонами. Хотя, в любом случае, корректировка свойств (выдвижение сильных-слабых сторон) также завязана на социум, человек — «животное» коллективное.
> Вот моё мнение.

Хорошее, правильное (опять же, относительно) мнение.

> Вообще ЗДЕСЬ И СЕЙЧАС это главное отличие успешного человека, это невероятная сила. Успешный человек постоянно ЗДЕСЬ И СЕЙЧАС.

Если вы говорите об уверенности (не путать с самоуверенностью), вызываемом аутотреннингами и самопрограммированием (т.е. «я уже явлюсь <таким-то>») — да, — «мы становимся теми, кем себя „называем“ (ощущаем)». Ключевой момент — это истинная вера в это, истинная уверенность, истинное ощущения себя таковым. Плюс, естественно, подкреплять всё это действиями (под лежачий камень вода не течёт).

Однако, если просто говорить о здесь и сейчас, то в теории «информационного метаболизма» этот подход больше присущ, так называемым, сенсорикам (их ключевая фраза — «здесь и сейчас»). Противоположность им — интуиты. И снова, ни в коем случае не значит, что один «хороший», другой «плохой».

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность