powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Одному мне не хватает этого в js?
25 сообщений из 81, страница 3 из 4
Одному мне не хватает этого в js?
    #38522322
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечПрограмёр1. Зачем в прототип писать полноценный объект, если точно тот же объект с расширенными возможностями станет результирующим. То есть по сути создаётся одна дополнительная копия объекта, все свойства которого перекрыты потомком.
2. Если я на входе конструктора Animal ожидаю объект, с которым собираюсь проводить некоторые манипуляции (например это массив, и я хочу получить его длину и т.д.), то Bird.prototype = new Animal(); может привести к ошибке, если я не предусмотрю такой вызов. А причина моих попыток как-раз в том, что бы как можно больше предусматривалось автоматически, то есть не писать лишней логики.

Вместо этих двух пунктов я просто ввёл собственную цепочку прототипов (точнее их конструкторов) и обернул такое "наследование" в отдельный метод.именно эти два пункта учтены в том варианте, который я привел 15393424 - там создается стандартная цепочка прототипов, но без полноценного объекта в прототипе.

Вполне полноценный и работоспособный подход. Есть явные преимущества перед предложенным мной? Цепочка прототипов заполняется, однако всё-ровно не совсем полноценно. например alert(b.constructor.prototype._legs); вместо ожидаемого "2" выведет "undefined" :)
В общем ничего против такого варианта не имею, но имеет смысл менять привычку только если в новом варианте есть преимущества. Так что, если есть, прошу пояснить.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38522350
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрЦепочка прототипов заполняется, однако всё-ровно не совсем полноценно. например alert(b.constructor.prototype._legs); вместо ожидаемого "2" выведет "undefined" :)и это правильно.
суть в том, что все данные должны быть в составе объекта, а общие данные (в 99% случаев - функции) - в составе цепочки прототипов.

ПрограмёрЕсть явные преимущества перед предложенным мной?как уже говорилось, работает механизм добавления методов во все промежуточные классы, который изначально предусмотрен в js.
т.е. я могу отдельно добавить метод в Bird.prototype, тогда он будет виден объектам Bird и наследникам.
а если добавлю метод в Animal.prototype, он виден в объектах Animal и наследниках.

ну и тот факт, что для каждого экземпляра объекта не создаются отдельные экземпляры функции.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38522356
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечПрограмёрЦепочка прототипов заполняется, однако всё-ровно не совсем полноценно. например alert(b.constructor.prototype._legs); вместо ожидаемого "2" выведет "undefined" :)суть в том, что все данные должны быть в составе объектапредставь, что _legs - не число, а массив, куда в ходе работы что-то добавляется.
окажись он в прототипе, был бы один общий массив для всех экземпляров.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38530224
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрВсем привет.

Мне вдруг стало интересно, одному мне это в js мешает при решении более-менее сложных задач:
1. отсутствие полноценного механизма наследования
2. отсутствие проверки на валидность переданных в функцию параметров
3. отсутствие возможности перегрузки методов (при разных входных параметрах разная логика)


Нет нетолко вам. Но нет в мире совершенства!!
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38530525
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема многих, кому чегото не хватает в javascript, в том что приходя в javascript они мыслят и пытаются использовать его как предыдущий язык.

Чего греха таить - я тоже после C# хотел классов, но после изучения языка и многих лет работы мне становится смешно, когда ктото в очередной раз хочет классов в javascript)

В монолитных приложениях, когда весь код сразу на месте - это может и необходимость, но в фронтэнде как правило необходимые модули подгружаются динамически, что сводит на нет использование классов.

JavaScript тем и прекрасен, что в нем нет строгой типизации, помню сколько огорода приходилось городить на C# чтобы иметь возможность обрабатывать различные типы классов в одно коде. Чур меня чур от такого!)

JavaScript гибок, легок и прекрасен именно в таком виде какой он есть и переделывать его не надо - надо переделывать программистов, которые хотят его переделать) Не хотите всех его плюшек - переходите на другие языки
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38530559
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spПроблема многих, кому чегото не хватает в javascript, в том что приходя в javascript они мыслят и пытаются использовать его как предыдущий язык.

Чего греха таить - я тоже после C# хотел классов, но после изучения языка и многих лет работы мне становится смешно, когда ктото в очередной раз хочет классов в javascript)

В монолитных приложениях, когда весь код сразу на месте - это может и необходимость, но в фронтэнде как правило необходимые модули подгружаются динамически, что сводит на нет использование классов.

JavaScript тем и прекрасен, что в нем нет строгой типизации, помню сколько огорода приходилось городить на C# чтобы иметь возможность обрабатывать различные типы классов в одно коде. Чур меня чур от такого!)

JavaScript гибок, легок и прекрасен именно в таком виде какой он есть и переделывать его не надо - надо переделывать программистов, которые хотят его переделать) Не хотите всех его плюшек - переходите на другие языки

Переход на другой язык не представляется возможным... Как-то я себе не представляю как клиентскую часть сайта возможно написать на С#, не написав собственный интерпретатор :)

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

И как динамическая подгрузка сводит на нет использование классов? В пхп include тоже динамически код грузит, но там это никак не мешает использовать классовое ООП на полную катушку.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38531244
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрА как различные типы классов в одном коде то обрабатывать? Если вызывать методы класса, или обращаться к определённым свойствам, то для этого и придумали наследование и интерфейсы (просто структуру классов надо правильно строить).

javascript тем и хорош что в нем не нужна никакая структура классов, что в одном коде обработать любые, т.е. абсолютно любые заранее неизвестные структуры данных! И только благодаря отсутствию строгой типизации и прототипной структуре наследование такая гибкость доступна в этом языке.

ПрограмёрИ как динамическая подгрузка сводит на нет использование классов? В пхп include тоже динамически код грузит, но там это никак не мешает использовать классовое ООП на полную катушку.

Динамическая подгрузка в таком случае сводится не подгрузке одного класса а всей иерархии классов сразу - что лишает смысла динамическую подгрузку в целом!
Перестаньте мыслить классами, думайте лучше о мелких функциональных модулях или о mixins - этот шаблон проектирования наиболее распространен в javascrip программировании - обратите внимание на Node.js - там этот шаблон используется на полную катушку и причем очень продуктивно
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38531320
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spjavascript тем и хорош что в нем не нужна никакая структура классов, что в одном коде обработать любые, т.е. абсолютно любые заранее неизвестные структуры данных

то есть js Вам нравится тем, что перед тем как что-то написать не надо думать и проектировать? Начал писать, а дальше уж как пойдёт?! :)

Но основная суть всё-же не в этом... Как уже писал, мне больше всего не хватает перегрузки методов, когда один метод с разными аргументами работает по-разному, при чём без дополнительной логики в теле метода. Этого я как-раз таки и добился (хотя пришлось в итоге некоторые изменения внести, так как IE как всегда не очень понравились некоторые моменты :)) + для оптимизации по скорости).

spДинамическая подгрузка в таком случае сводится не подгрузке одного класса а всей иерархии классов сразу - что лишает смысла динамическую подгрузку в целом!

Повторюсь... php также умеет грузить код частями и динамически, при этом классовое ООП и динамическая подгрузка кода там очень даже хорошо уживаются (взять тот же yii с его достаточно сложной структурой и "lazy loading"). При динамической загрузке грузить надо не всю иерархию классов (в моём случае модулей, так как у меня основная делёжка не по классам, а по модулям), а только зависимости для данного модуля.

Насчёт mixin, а чем он лучше множественного наследования (чем так принципиально отличается)? Ведь в принципе то же самое, за исключением вызова конструкторов предков (подобно наследованию от нескольких классов без конструкторов). Нет, конечно на уровне языка, отличие в реализации очень большое... Но вот уже на уровне создания приложения - я не понимаю особой разницы. Ну да, паттерн mixin позволяет расширить функционал отдельного объекта, что не принято делать при классовом наследовании. Однако "не принято", не значит "запрещено" :)
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38532603
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

ну зачем вы специально все утрируете?))
если у вас есть молоток, но вы привыкли работать с топором - зачем переделывать молоток под топор. чтоб забивать им гвозди???
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38532613
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spПрограмёр,

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

У меня есть опыт работы с топором (дэлфи и php), и есть в руках молоток (js), кстати, есть и опыт работы с ним. Так вот я как-раз хочу сделать молоток таким, что бы одной стороной можно было гвозди забивать удобно, а повернув - дрова рубить )). То есть я к молотку просто стараюсь прикрутить функцию топора, при этом как можно меньше ограничив оригинальные функции инструмента.

Пока удаётся... ))

в копилку кстати свалилась возможность быстрой выборки элементов DOM по селектору (по производительности сравнима с jQuery), а также инструмент для анимаций (он кстати по производительности не уступает jQuery, пока на глаз с анимированием в несколько десятков элементов).

С новыми доработками пишется очень удобно... надеюсь что-то в итоге и получится ))
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38532639
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрв копилку кстати свалилась возможность быстрой выборки элементов DOM по селектору (по производительности сравнима с jQuery), а также инструмент для анимаций (он кстати по производительности не уступает jQuery, пока на глаз с анимированием в несколько десятков элементов).

С новыми доработками пишется очень удобно... надеюсь что-то в итоге и получится ))

Выборка по DOM - querySelectorAll(), анимация - CSS3 Animation.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38533786
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stПрограмёрв копилку кстати свалилась возможность быстрой выборки элементов DOM по селектору (по производительности сравнима с jQuery), а также инструмент для анимаций (он кстати по производительности не уступает jQuery, пока на глаз с анимированием в несколько десятков элементов).

С новыми доработками пишется очень удобно... надеюсь что-то в итоге и получится ))

Выборка по DOM - querySelectorAll(), анимация - CSS3 Animation.

querySelectorAll() - это да... штука хорошая... Именно её и использовал у себя. Но сама по себе выборка не несёт смысла без методов быстрого изменения свойств элементов и тому подобное (как в jQuery)

CSS3 Animation - до IE10 про неё можно забыть... если там и есть какая-либо поддержка, то как минимум animation-timing-function в ie ниже 10 не поддерживается.
В итоге да, можно и его использовать, но ещё рано.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38533816
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрНо сама по себе выборка не несёт смысла без методов быстрого изменения свойств элементов и тому подобное (как в jQuery)да не сказал бы.
"быстрое изменение свойств" (как я понимаю, методы вроде .css(), .val() и т.д.) и в цикле нетрудно сделать.
а вот без селекторов иногда придется люто г-кодить.
очень крутой механизм.
хотя нативные селекторы несколько уступают jQuery. Основное отличие - jQuery умеет "заглядывать внутрь" - селекторы ":has" и т.д., которых нет в css.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38533854
Фотография Judo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх с точки зрения семантики, лаконичности и гибкости с моей субъективной точки зрения JavaScript лучший язык.

Как я скучаю по его гибкости в Java.
Как парит громоздкость в PL\SQL.
Как устал от этих begin \ end в дельфи (хотя они же есть и в PL\SQL и в pgSQL и еще вопрос где они появились раньше).
В С++ просто до смеху доходят с их "завихрениями" в ООП )) - вот реально надоела его STL и этот Boost, да еще и MS Visual IDE сделано ну не для RAD.

Везде есть плюсы и минусы - ну вот к примеру кто видел крутой 3D движок на JavaScript с миллионом треугольников в сцене и материалами - а многопотоковость ? вот вот.

Хочешь халяву юзай Java. Накопил штуку баксов купи MS Visual и пиши С++,
накопил три штуки баксов купи Delphi.
Накопил 548.913 $ купил оракл )))
Потом плюнул на тормоза и заменил бесплатным постгресом )

Но в любом случае я люблю эти языки - и они хороши по своему - в каждом своем отдельном применении.

P.S> Да убережет Вас рука от холивара )
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534076
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Judoс точки зрения семантики, лаконичности и гибкости с моей субъективной точки зрения JavaScript лучший язык.+1 (тоже субъективный)
Judoну вот к примеру кто видел крутой 3D движок на JavaScript с миллионом треугольников в сцене и материаламиэто удел С++ - наверно, единственного языка, которому js не может составить конкуренцию.
Judoа многопотоковость ?многопотоковость не относится к языку - это фича среды выполнения.
и кстати в современных браузерах она есть - https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534126
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечJudoс точки зрения семантики, лаконичности и гибкости с моей субъективной точки зрения JavaScript лучший язык.+1 (тоже субъективный)
Judoну вот к примеру кто видел крутой 3D движок на JavaScript с миллионом треугольников в сцене и материаламиэто удел С++ - наверно, единственного языка, которому js не может составить конкуренцию. тынц лучше всего в ff
Яростный Мечмногопотоковость не относится к языку - это фича среды выполнения.
и кстати в современных браузерах она естьИ используется как раз для подсчета треугольничков. Кроме матана, воркерам нечего делать, к dom'у из них нельзя обращаться.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534138
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyКроме матана, воркерам нечего делатьпо-хорошему это везде так. Ввод/вывод правильнее делать асинхронными, а все прочие долгие операции - вычисления.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534152
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Judoс миллионом треугольников в сценеТреугольники это дедушки шейдеров. Нафига нужны миллионы треугольников, если с помощью шейдеров можно имитировать любой рельеф на абсолютно плоской поверхности?

Judoи материаламиНу вот конкретно материалы и шейдеры, но уже на другом движке.
На нем же.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534167
Фотография Judo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечJudoс точки зрения семантики, лаконичности и гибкости с моей субъективной точки зрения JavaScript лучший язык.+1 (тоже субъективный)
Judoну вот к примеру кто видел крутой 3D движок на JavaScript с миллионом треугольников в сцене и материаламиэто удел С++ - наверно, единственного языка, которому js не может составить конкуренцию.
Judoа многопотоковость ?многопотоковость не относится к языку - это фича среды выполнения.
и кстати в современных браузерах она есть - https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers
Меч тут ты прав, мне всегда подымают настроение люди которые говорят что Дельфи это паскаль)). Еще более интересно слышать от них новость что С++ быстрее в РанТайме на 30%. Да это возможно было во времена динозавров и Дельфи 3 но не позже )). Уже в 4 компилятор оптимизировали и VCL давно уж как снабдили ассемб вставками. Ну я полность за то чтобы большинство компании покупали себе MS C++ компайлер нанимали сотню програмегггов и писали годами ПО на своем псевдо RAD. Меньше конкуренция проще жить)) Людям не запретишь думать что земля плоская и мы единственные высшие существа во вселенной)
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534173
Фотография Judo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyJudoс миллионом треугольников в сценеТреугольники это дедушки шейдеров. Нафига нужны миллионы треугольников, если с помощью шейдеров можно имитировать любой рельеф на абсолютно плоской поверхности?

Judoи материаламиНу вот конкретно материалы и шейдеры, но уже на другом движке.
На нем же.

Не путайте геометрию с материалами)
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534193
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Judo,

В общем, графических возможностей у браузеров уже больше, чем было 10 лет назад у целого компьютера с 3д-ускорителем :)

Не в недостаче треугольников проблема — идей нет. Технологий выдумывается больше, чем конечных продуктов на них.
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534202
Фотография Judo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyJudo,

В общем, графических возможностей у браузеров уже больше, чем было 10 лет назад у целого компьютера с 3д-ускорителем :)

Не в недостаче треугольников проблема — идей нет. Технологий выдумывается больше, чем конечных продуктов на них.

Покажи доказательство JavaScript с использованием Cuda и PhysX (тогда поболтаем про 10 лет)) ?
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534209
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНе в недостаче треугольников проблема — идей нет.+100

иногда думаю - эх, вернуться бы с накопленными знаниями лет на 10-15 назад - щас был бы владельцем всяких твиттеров-фейсбуков, а не г-кодером рядовым...
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534481
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JudoПокажи доказательство JavaScript с использованием Cuda и PhysX (тогда поболтаем про 10 лет)) ?10 лет назад PhysX еще не было, так что за доказательствами проходи мимо.

Вопрос в другом — нафига? Этими свистелками затыкают все тот же кризис идей. У нас реалистическая физическая модель!11 — вопят производители контента, соря релевантными аббревиатурами, а как взглянешь, ради чего эта физика — зальешься кровавыми слезами.

Это во-первых, а во-вторых, что, без свистелок уже и физику посчитать невозможно? Да на . PhysX может работать без всякой куды, и я однажды специально гонял игрушку на видеокарте ATI (тогда еще) со включенной физикой и выключенной. Процессор разницы не заметил, фпс почти не изменился.

Вклад физики в общую нагрузку настолько мал, что браузер с js ее так же не заметит, как и ЦП. Конечно, при реализации физики прямыми руками.

К слову, 3d-движок BananaBread переведен на js как раз с с++, причем какой-то автоматизированной тулзой. Что мешает перевести тот кусок PhysX, который не юзает Куду?
...
Рейтинг: 0 / 0
Одному мне не хватает этого в js?
    #38534939
Фотография Judo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyJudoПокажи доказательство JavaScript с использованием Cuda и PhysX (тогда поболтаем про 10 лет)) ?10 лет назад PhysX еще не было, так что за доказательствами проходи мимо.

Вопрос в другом — нафига? Этими свистелками затыкают все тот же кризис идей. ......

Это все слова которые любят произносить теоретики. Вот приведи пример какой нибудь солидной 3D MMORPG минимум с хотя бы 30 игроками в локации, движок которой сделан на JavaScript ? а потом оценим ее качество графики ))

Хорошая идея возникает у одного человека из тысячи, а может быть из десяти тысяч. И она еще может взлететь а может и нет, что зависит от страны где он живет, инвестиций и правильного продвижения. А может так и остаться никому не известной. Так было и так будет. А кризис идей это просто красивые слова.

P.S> И чего он так взъелся ?)))
-----
Не путайте самолеты с подводными лодками - каждый язык хорош в своей области применения
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 3 из 4
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Одному мне не хватает этого в js?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]