Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 03.06.2008, 00:28
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от tenshi
сокрытие переменных приводит к тому, что мы не можем полноценно отлаживать приложение, ибо не можем получить полное состояние объекта
Если честно ни разу не приходилось отлаживать приложения.

Сообщение от vasa_c
Да. Описать эту возможность?
Если не трудно. Мне именно интересно сравнить оба подхода, ну и если есть возможность, то заодно и с простым JavaScript без инкапсуляции.

Сообщение от vasa_c
Обоснования были даны совершенно чёткие - страдает читабельность кода, скорость скрипта, количество используемой памяти.
Замыкания позволяют создать аналог скрытых свойств и перенос напрямую всех подходов из "классового" ООП обычно не приводят ни к чему хорошему.
Я имел ввиду, что никто не сказал "у меня есть опыт" или "я провел эксперимент и точно знаю, вот цифры".
Я тоже могу сказать, что IE со строками работает быстрее других браузеров, однако это только слова, надо их чем-то подкрепить (правда в моем случае нечем ).

По поводу читаемости и эстетики, если у вас используется несколько JS файлов, отдельно для комментариев, отдельно для меню и пр., можете поверить на слово, без инкапсуляции код будет читаться гораздо сложнее чем с (можете, правда, и не поверить). Вполне допускаю, что будет несколько функций с одинаковыми именами. И чем больше проект, тем сложнее будет слдеить за отсутствием повторов. А если использовать библиотеки со стороны, у которых тоже все функции вывалены прям так...
Так что предлагаю тему читаемоости закрыть сразу и больше к ней не возвращаться. Делали - читаемо.

Сообщение от tenshi
такой подход не может быть уместен, ибо все методы создаются заново при каждом инстанцировании объекта.
На какой пост ответ? :confused:

Вот это я понимаю тема, интересно обсудить, а то все "как сделать, чтоб onclick работал?"

Продолжаем разговор.
Ответить с цитированием
  #22 (permalink)  
Старый 03.06.2008, 01:13
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Snipe
Я имел ввиду, что никто не сказал "у меня есть опыт" или "я провел эксперимент и точно знаю, вот цифры".
"У меня есть опыт и я провел эксперимент и точно знаю" то, о чем написал Вам уже два раза. =)
__________________
Тонкости ECMAScript
Ответить с цитированием
  #23 (permalink)  
Старый 03.06.2008, 01:28
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от Dmitry A. Soshnikov Посмотреть сообщение
"У меня есть опыт и я провел эксперимент и точно знаю" то, о чем написал Вам уже два раза. =)
О, это не к вам обращение. Вам как раз спасибо за объяснения! Была бы тут карма, поднял бы )))
Ответить с цитированием
  #24 (permalink)  
Старый 03.06.2008, 01:44
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Snipe,
По моему личному опыту, самый читабельный ОО код (в JavaScript) - когда весь объект представлен одним хэшем. Хотя из-за проблемы с запятыми, такой вид не очень удобен.
Ответить с цитированием
  #25 (permalink)  
Старый 04.06.2008, 07:30
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Раз:
http://habrahabr.ru/blog/webdev/43781.html
Два:
http://habrahabr.ru/blog/webdev/43805.html
Ответить с цитированием
  #26 (permalink)  
Старый 04.06.2008, 12:24
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

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

конфликты имён решаются элементарно посредством неймспейсов.

при использовании замыканий для сокрытия приходится увеличивать число отступов у вложенных блоков. при количестве отступов > 3, код становится трудночитаем.
__________________
.ня
Ответить с цитированием
  #27 (permalink)  
Старый 04.06.2008, 13:27
Профессор
Отправить личное сообщение для hogart Посмотреть профиль Найти все сообщения от hogart
 
Регистрация: 18.04.2008
Сообщений: 152

tenshi, не знаю, у меня используются замыкания для сокрытия и число отступов очень мало где превышает 3.

Читаемость -- тема отдельной беседы. Кто-то например может ставить фигурные скобки в микрософтовском стиле, а лично мне такой код нечитабелен.
Ответить с цитированием
  #28 (permalink)  
Старый 04.06.2008, 22:19
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

это пока у тебя скрипты маленькие...
__________________
.ня
Ответить с цитированием
  #29 (permalink)  
Старый 05.06.2008, 11:04
Профессор
Отправить личное сообщение для hogart Посмотреть профиль Найти все сообщения от hogart
 
Регистрация: 18.04.2008
Сообщений: 152

tenshi, конечно, маленькие -- каждый обьект в своем файле.
Ответить с цитированием
  #30 (permalink)  
Старый 05.06.2008, 13:08
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от hogart
у меня используются замыкания для сокрытия
Т.е., если объект имеет 10 методов и создается 10 объектов, браузеру приходится создавать 100 функций вместо 10 возможных.

Читабельность, конечно, вопрос индивидуальный, но мне комфортней
var f = function() {};
f.prototype = {
  m1: function() {},
  m2: function() {},
  m3: function() {}
};
чем
var f = function() {
  this.m1 = function() {};
  this.m2 = function() {};
  this.m3 = function() {};
}

Последний раз редактировалось Kolyaj, 05.06.2008 в 13:11.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22
кто в чём пишет??? uncle Общие вопросы Javascript 12 22.04.2008 20:20