Несколько вопросов касательно JavaScript(замыкания, классы..)
Пишу на 8 языках, потому часто в голове возникает путаница, потому и спрашиваю, чтобы подтвердить свои догадки ( не все моменты в книгах описаны так явно как хотелось бы)
1) Время жизни объекта var x=function () { var arr=[0,1,2]; return arr; } var t=x(); После того как создался массив/объект в функции и мы его вернули в глобальный контекст, t становится ссылкой на созданный объект, ссылка arr удаляется, но объект продолжает жить, верно? 2) Лексическая область видимости и замыкания, объект вызова предположим есть функция function createCounter() { var numberOfCalls = 0; return function() { return ++numberOfCalls; } } var fn = createCounter(); теперь с каждым вызовом fn numberOfCalls будет выступать в роли статической переменной и увеличиваться при каждом вызове? Это связано с тем что createCounter создает лексическую область видимости, что-то вроде класса и сохраняется в fn? 3) Классы в JS создаются так: var cl=function (x) { this.test=x; this.method=function (x) { return x*x; } } в данном случае cl хранит в себе класс, и есть одно свойство и один метод, только такой способ создания классов возможен? 4) Книжка "с носорогом", это хорошее пособие по js? Есть ли что-нить получше? Если возникнут еще вопросы напишу. Заранее спасибо всем за ответы. JS учу 2 часа, не сомневайтесь всю инфу читал гуглил, спрашиваю людей знающих, чтобы удостоверится , что все так как надо понял, и путаница в голове от разных языков не исказила восприятие) |
Цитата:
объект-массив, на который она ссылается, остается, так как на него продолжает ссылаться глобальная переменная t Цитата:
на сайте есть отличная статья про замыкания Цитата:
в JS нету классов. совершенно нету и они никак не создаются, соответственно все попытки создания классов в JS - ложь и провокация всего лишь попытка привнести в язык привычный по-другим языкам механизм. но, он в этом языке совершенно ни к месту, и не нужен |
да формально классов нет, но в коде часто видно, что создается подобие класса, и я как раз спрашиваю как это делается, а надо или не надо это другой вопрос, чаще всего все-таки надо
|
|
Цитата:
это примерно то же самое, как если нарисовать коту на заднице морду слона, а хвост разукрасить как хобот. подобие, и только Цитата:
а как именно, можно найти в гугле. да и на форуме наверняка мелькало. в общем, ищите, если вам очень нужно. Кстати, вы говорите, что уже видели это в коде.в чем проблема выдрать оттуда? Цитата:
это просто так только кажется. потому что большинство людей не могут понять как это "объекты есть, а классов нету", и не умеют пользоваться прототипным ООП как следствие пытаются сделать язык похожим на классовый язык. то есть на то, чем он изначально не являлся и не должен |
Цитата:
Но кому он нужен, есть же форум :( |
vladlen,
сам когда-то это читал. но за личной ненадобностью уже и забыл. |
Часовой пояс GMT +3, время: 10:35. |