|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
||||||
arguments08.02.2011, 13:23. Показов 3070. Ответов 31
Метки нет (Все метки)
Обнаружил наистраннейшую вещь - вот этот код:
Добавлено через 2 минуты Хм, это связано со ссылочными переменными. arg1 - ячейка массива, я её изменяю на тип object, а это ссылочный тип... и что-то непонятно... arg1-то не объект по началу и по идее не должен ссылаться...
0
|
||||||
| 08.02.2011, 13:23 | |
|
Ответы с готовыми решениями:
31
Arguments.callee.name arguments[] не могу понять что не так Write a function nextInLine which takes an array (arr) and a number (item) as arguments. |
|
|
|
| 17.02.2011, 11:58 | |
|
Все переменные живут ровно столько, чтоб обеспечить правильную работу скрипта. Вообще, идеальная модель исполняющей машины — машина с бесконечной памятью, однако, из-за того, что пока нет таких машин (из существующих), интерпретатор переодически запускает сборщик мусора, который подчищает всю ненужную память. Объект считается недоступным, а ею занимаемая память — ненужной, если нет ни одной ссылки (то есть переменной) на этот объект.
В случае замыкания у нас внутри функции есть обращение к некоторой внешней переменной, поэтому она сохраняется в память.
0
|
|
|
307 / 165 / 25
Регистрация: 07.02.2011
Сообщений: 319
|
|
| 17.02.2011, 12:08 | |
|
Hagrael, После вызова функции остаётся объект вызова , в котором и хранятся локальные переменные до уничтожения этого объекта.
0
|
|
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|
| 17.02.2011, 12:27 [ТС] | |
|
Kdn, объект хранит локальные переменные функции? о_О Это что-то новенькое!
0
|
|
|
307 / 165 / 25
Регистрация: 07.02.2011
Сообщений: 319
|
|
| 17.02.2011, 12:46 | |
|
Hagrael, Конечно не хранит, бред написал, имеет доступ к локальным переменным.
0
|
|
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|
| 17.02.2011, 12:49 [ТС] | |
|
Kdn, так значит, переменные хранятся отдельно, и они существуют бесконечно?
0
|
|
|
307 / 165 / 25
Регистрация: 07.02.2011
Сообщений: 319
|
|
| 17.02.2011, 13:07 | |
|
Если строго следовать правилу лексической области видимости: функция исполняется в той области видимости, в которой она была определена. Однако самое интересное состоит в том, что области видимости продолжают существовать и после выхода из объемлющей функции. В обычной ситуации этого не происходит. Когда вызывается функция, создается объект вызова и азмещается в ее области видимости. Когда функция завершает работу, объект вызова удаляется из цепочки вызова. Пока дело не касается вложенных функций, цепочка видимостиявляется единственной ссылкой на объект вызова. Когда ссылка на объект удаляется из цепочки, в дело вступает сборщик мусора.
Однако ситуация меняется с появлением вложенных функций. Когда создается определение вложенной функции, оно содержит ссылку на объект вызова, поскольку этот объект находится на вершине цепочки областей видимости, в которой определяется функция. Если вложенная функция используется только внутри объемлющей функции, единственная ссылка на вложенную функцию –это объект вызова. Когда внешняя функция возвращает управление, вложенная функция ссылается на объект вызова, а объект вызова – на вложенную функцию, и никаких других ссылок на них не существует, благодаря этому они становятся доступными для механизма сборки мусора. Все меняется, если ссылка на вложенную функцию сохраняется в глобальной области видимости. Это происходит, когда вложенная функция передается в виде возвращаемого значения объемлющей функции или сохраняется в виде свойства какого-либо другого объекта. В этом случае появляется внешняя ссылка на вложенную функцию, при этом вложенная функция продолжает ссылаться на объект вызова объемлющей функции. В результате все объекты вызова, созданные при каждом таком обращении к объемлющей функции, продолжают свое существование, а вместе с ними продолжают существование имена и значения аргументов функции и локальных переменных. JavaScript-программы не имеют возможности напрямую воздействовать на объект вызова, но его свойства являются частью цепочки областей видимости, создаваемой при любом обращении к вложенной функции. (Примечательно, что если объемлющая функция сохранит глобальные ссылки на две вложенные функции, эти вложенные функции будут совместно использовать один и тот же объект вызова, а изменения, появившиеся в результате обращения к одной из функций, будут видимы в другой.) Функции в JavaScript представляют собой комбинацию исполняемого программного кода и области видимости, в которой этот код исполняется. Такая комбинация программного кода и области видимости в литературе по компьютерной тематике называется замыканием (closure). Все JS функции являются замыканиями. Однако все эти замыкания представляют интерес лишь в только что рассмотренной ситуации, когда вложенная функция экспортируется за пределы области видимости, в которой она была определена. Вложенные функции, используемые таким образом, нередко явно называют замыканиями.
1
|
|
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|||||||||||
| 19.02.2011, 13:03 [ТС] | |||||||||||
|
Я так понял:
0
|
|||||||||||
|
|
||||||
| 19.02.2011, 15:00 | ||||||
|
Hagrael, с педагогической стороны тебе лучше считать, что они не удаляются вовсе до завершения скрипта (т.е. пока включен интерпретатор/браузер).
Удаление объектов описан (ну как описан, скорее, даны некоторые характеристики браузеров) тут: http://habrahabr.ru/blogs/javascript/112650/ В твоих примерах удалений нет, так как в этих участках нет никаких намеков на использование в дальнейшем. Такой вариант:
P.P.S. перечитай последний пост Kdn
1
|
||||||
| 19.02.2011, 17:33 | |
|
Не по теме: Hagrael, Пиши всегда с ; , скажи бэйсику "нет". Ибо существует механизм автодобавления ; . http://javascript.ru/ecma/part7#a-7.9
0
|
|
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|
| 19.02.2011, 17:50 [ТС] | |
|
Vovan-VE, что за механизм не понял, но буду писать
0
|
|
| 19.02.2011, 18:36 | ||||||||||||||||||||||||||||||||
|
Не по теме:
1
|
||||||||||||||||||||||||||||||||
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|
| 20.02.2011, 14:02 [ТС] | |
|
Vovan-VE, последний пример все явно продемонстрировал, спасибо.
0
|
|
| 20.02.2011, 14:02 | |
|
NoReverseMatch at / Reverse for 'detail_news' with arguments '('',)' and keyword arguments '{}' not found... Too many output arguments
Too few arguments to function Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|