Jump to content

Курсы javascript


heywait
 Share

Recommended Posts

Но эти механизмы есть в JS по умолчанию и реализуются без извращений, почему бы не использовать то что реализовано в языке? Весь jQuery с его плагинами на этом построен, не вижу ничего плохого в этом.

JavaScript - не классический ООП, в нем нет классов, он основан на прототипах. Это другой подход и другой мир. Например, в JS нельзя без извращений сделать свойства объекта приватными. Можно через замыкания, но это чревато проблемами. jQuery - синглтон. Плагины реализованы как обработчики основного объекта. В классическом ООП каждый плагин наследовал бы какой-то абстрактный класс jQueryPluginAbstract, и уже потом расширял бы его методы и свойства, но плагин в jq - это всего лишь инстанс.

Попробуй написать на Node.JS сервер для WebSockets - сразу поймёшь битовые операции :)

А подробнее можно, где там битовые операции...

Link to comment
Share on other sites

А подробнее можно, где там битовые операции...

Можно. В одной из первых реализаций, да и сейчас если я не путаю присылался секретный ключ. Собственно нужно было правильно распарсить его и соединить с телом GET запроса. Там конечно не особо то много надо делать, но, для начала как раз и потом всё начинает легче пониматься. После этого я начал углублённо читать про битовые операции и даже пробовал писать что то на ассемблере. Всё начинается с малого.

Link to comment
Share on other sites

Это другой подход и другой мир.

Согласен.

Например, в JS нельзя без извращений сделать свойства объекта приватными.

Свойства объекта нет, да это и не нужно. Я и в классическом ООП не особо понимаю, зачем шужны приватные, защищенные и т.п. свойства.

Link to comment
Share on other sites

Можно. В одной из первых реализаций, да и сейчас если я не путаю присылался секретный ключ. Собственно нужно было правильно распарсить его и соединить с телом GET запроса. Там конечно не особо то много надо делать, но, для начала как раз и потом всё начинает легче пониматься. После этого я начал углублённо читать про битовые операции и даже пробовал писать что то на ассемблере. Всё начинается с малого.

Так это гугловские извращения, в спеке такого выпендрежа нет.

Свойства объекта нет, да это и не нужно. Я и в классическом ООП не особо понимаю, зачем шужны приватные, защищенные и т.п. свойства.

Они нужны для защиты от переопределения. Например, у тебя есть объект по работе с денежными суммами. Пусть это будет кошелек. Например, процедура записи некой суммы в кошелек должна всегда производиться в самых минимальных денежных единицах: для долларов сумма записывается в центах, а для рублей в копейках. Так вот метод записи нельзя переопределять никогда, это должно быть приватный метод. Это гарантирует статичность поведения всех экземпляров объекта.

Link to comment
Share on other sites

Можно. В одной из первых реализаций, да и сейчас если я не путаю присылался секретный ключ. Собственно нужно было правильно распарсить его и соединить с телом GET запроса. Там конечно не особо то много надо делать, но, для начала как раз и потом всё начинает легче пониматься. После этого я начал углублённо читать про битовые операции и даже пробовал писать что то на ассемблере. Всё начинается с малого.

Так это гугловские извращения, в спеке такого выпендрежа нет.

Гугл тут не причём (ну косвенно конечно всегда причём), такова была одна из первых спецификаций. Если найду ссылку то скину.

UPD: Я делал для "Протокол 76" - http://ru.wikipedia.org/wiki/WebSockets

http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76#page-47

Link to comment
Share on other sites

Они нужны для защиты от переопределения. Например, у тебя есть объект по работе с денежными суммами. Пусть это будет кошелек. Например, процедура записи некой суммы в кошелек должна всегда производиться в самых минимальных денежных единицах: для долларов сумма записывается в центах, а для рублей в копейках. Так вот метод записи нельзя переопределять никогда, это должно быть приватный метод. Это гарантирует статичность поведения всех экземпляров объекта.

Ну можно же в конкретном scope создать просто переменные, они и будут приватными. В PHP будет проблема, т.к. там все переменные глобальные (или ошибаюсь?), а в JS с эти проблем нет.

Link to comment
Share on other sites

Не, в php глобальные автоматически создаются когда через доллар. И даже если не ошибаюсь все что начинаются на доллар - глобальные. По моему через static там создаются локальные, но я в php не разбираюсь.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy