Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вопрос по созданию объектов (https://javascript.ru/forum/misc/24614-vopros-po-sozdaniyu-obektov.html)

Wizout 08.01.2012 01:22

Цитата:

Сообщение от Livaanderiamarum (Сообщение 148784)
п.с. ДАА) изучаю JS 5 лет)) посмотрел в сторону других языков - ЖЕСТЬ))

реально НМОго лишних вещей и много не понытного и не нужного..

Например ЗАЧЕМ определть тип переменной??? неужели современные технологии не способны автоматом это делать?? способны) просто те языки появились 200 лет назад)

ну вообще так как языки эти старые, то память и процессоры раньше были слабенькие, а как раз прямое указание того, какой тип данных использовать, достаточно хорошо влияло на производительность, скорость и выделяемого объема памяти для работы написанной программы

Livaanderiamarum 08.01.2012 01:24

Цитата:

Сообщение от Wizout (Сообщение 148786)
а разве эти дополнительные действия не повлияют на скорость работы сценария никак? я думаю чем меньше лишних действий будет делать браузер, тем быстрее будет работать сценарий

и еще по поводу того как тут хорошо тут работает GC? чтобы объект быстрее был удален из памяти, стоит ли при прекращении использования объекта присваивать NULL, чтобы он быстрее удалился или это никак не повлияет работу GC?

Во первых ВО ВСЕХ языках программирования используют компроми, типа ЛИБО памамять ЛИБО быстродействие)

тот же самый паттерн КЭШ.

Тут то же самое, ПОИСК метода в отце, и в отце отцов занимает время, у папки то ведь тоже может быть куча свойств и нужно по всем пробежаться и посмотреть на их имена совпадают ли с запрашиваемым))
это естественно)

но это так реализовано что движки JS это все оптимизируют так, что НЕ влияет))
они составляют карту, и составляют области видимости) , замыкания)) иными слвоами поиск метода в ОТЦАХ занимает минимум времени потому что физически он ищется не в отцах а в специальном месте области видимости))

Livaanderiamarum 08.01.2012 01:32

Цитата:

Сообщение от Wizout
и еще по поводу того как тут хорошо тут работает GC? чтобы объект быстрее был удален из памяти, стоит ли при прекращении использования объекта присваивать NULL, чтобы он быстрее удалился или это никак не повлияет работу GC?


обьекты в JS удаляются автоматически тогда когда на обеькт перестает существовать хотя бы одна ссылка.

например
var q = {a:20}
q это НЕ имя обьекта, как может показаться, q это лишь ссылка на обьект, то есть ТО что с право создалось и засунулось в память, а ссылка на это засунулась в q

мы так же можем сделать так

var w = q
оператор ровно посмотрел что находится в q? посмотрел что там ссылка, посмотрел что по ней, посмотрел адрес этого в памяти))
сгенерировал новую ссылку, и засунул её в w

теперь в q и w лежит ссылки на одну и ту же область в памяти)) и если
сделать так

q.a = 400
то и w.a станет 400
потому чо это одно и то же) как очевидно))

так вот чтобы УДАЛИТЬ обьект ты думаешь что нужно сделать так:

либо q либо w прировнять к NULL ))

на само деле не так))

это действие просто заменит обьект {a:400} пустым обьектом из нулей, а как известно нули память тоже жрут.

чтобы удалить обьект я уже говорил что нужно удалить все ссылки на него

оператор delete

delete q
delete w


все, вот терь когда сборщик мусора (а эта хреновина так называется) пройдется по памяти и заметит что есть участок на который ни че не ссылается) она очистит его))


Часовой пояс GMT +3, время: 08:08.