|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
||||||
arguments08.02.2011, 13:23. Показов 2928. Ответов 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 | |
|
Помогаю со студенческими работами здесь
32
NoReverseMatch at / Reverse for 'detail_news' with arguments '('',)' and keyword arguments '{}' not found... Too many output arguments
Too few arguments to function Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|