На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (66) « Первая ... 29 30 [31] 32 33 ...  65 66  ( Перейти к последнему сообщению )  
> JS и его "недостатки"
    Цитата D_KEY @
    В данном конкретном случае, интерпретатор почему-то позволяет вызывать функцию с неправильным набором аргументов, заменяя неуказанные аргументы этим самым undefined и пропуская лишние. Ты почему-то считаешь, что это нормально. Сильно подозреваю, что нужных слов для объяснения найти не смогу :( Попробуй пописать с учетом обоих подходов, может тогда поймешь сам :)

    Круто! :D Ты призываешь меня обосновывать твои слова в то время, как ты сам не можешь их обосновать? :D Круто!

    Пописать с разными подходами это, конечно, дело, только какой реакции ты на это ожидаешь? :) Что я скажу "да, в js полный отстой"? Это врятли - мне сейчас удобно, и этого факта не изменить на чем бы я еще не прогал, на то он и факт. Почти наверняка найдутся моменты, когда подход js будет хуже других подходов - это только убедит меня в том, что я и так знаю, а именно что всему свое место :) Иными словами - я и так вполне допускаю существование иных подходов и просто таки уверен, что они сделаны такими какие они есть не без причины. Так что это тебе нужно попрогать на js, а не мне на чем-то еще :D

    Цитата D_KEY @
    Вот только это совершенно не нужно...

    Да-да, слышали уже :D Кому не нужно, а кто использует и радуется.

    Цитата Мяут-Настоящий @
    А этого бага не существует:
    http://bugs.jquery.com/ticket/11119

    И это все, что ты сумел найти? :D Супротив "не собирается с ошибками компиляции"? :D

    Добавлено
    Цитата D_KEY @
    В этом случае, если значение по умолчанию в языке таких выкрутасов не позволяют, то можно задать значением по умолчанию null, а в теле функции проверить и если null, то выполнить нужные действия. Т.е. опять имеем полный аналог, только без глупостей и неочевидный "неявностей" :)

    Ловко у тебя это получается :D То есть инициировать в null (что по сути есть тоже самое что инициализация в undefined) и наворачивать вокруг этого логику - это можно и хорошо, а вот готовый механизм для этого - это глупо, не очевидно и не явно :D Тебе самому не тошно от твоих явных и очевидных выкручиваний, как уж на сковородке, а? :D
      Цитата Астарот @
      То есть инициировать в null (что по сути есть тоже самое что инициализация в undefined)

      :facepalm: Садись, два ©
        Цитата Астарот @
        Так что это тебе нужно попрогать на js, а не мне на чем-то еще :D

        Да я вроде пробовал... Причем как-то ни с чем из обсуждаемого не сталкивался... Но это были совсем простые скрипты и не для браузеров...

        Цитата
        Кому не нужно, а кто использует и радуется.

        За неимением лучшей альтернативы.

        Цитата
        Ловко у тебя это получается :D То есть инициировать в null (что по сути есть тоже самое что инициализация в undefined) и наворачивать вокруг этого логику - это можно и хорошо, а вот готовый механизм для этого - это глупо, не очевидно и не явно :D


        Смотри. В твоем случае данный пример будет выглядеть так:
        ExpandedWrap disabled
          function f(a)

        В моем так:
        ExpandedWrap disabled
          function f(a=null)


        В остальном - идентично. В моем случае мы явно указываем значение по умолчанию и это видно и клиентам и читателям кода, а так же всяким тулзам для генерации документации. Плохо ли?
        Кроме того, я по-прежнему не смогу вызывать эту функцию с двумя переменными - опять же контроль ошибок. Плохо?
          Цитата Астарот @
          Супротив "не собирается с ошибками компиляции"? :D

          У меня из-за другого не собирается :)
            Цитата D_KEY @
            За неимением лучшей альтернативы.

            В чем "лучшесть" альтернативы ты так и не сказал :D

            Цитата D_KEY @
            Смотри. В твоем случае данный пример будет выглядеть так:

            Если вспомнить про то, что переменным изначально undefined присвоен, то вообще получится
            Цитата
            function f(a=undefintd)

            то есть почти полный аналог :D

            Цитата D_KEY @
            В моем случае мы явно указываем значение по умолчанию и это видно и клиентам и читателям кода, а так же всяким тулзам для генерации документации. Плохо ли?

            Хорошо. Я разве говорил про плохо? Хорошо! Только то, что у тебя хорошо не делает плохо в js :) К тому же это умолчание ничего не говорит о том, что где-то дальше ты на нем завязал логику :-? "Да, по умолчанию null - и что?" спросит читатель твоего кода, и полезет либо в комментарии, либо в код. Что изменилось?

            Цитата D_KEY @
            Кроме того, я по-прежнему не смогу вызывать эту функцию с двумя переменными - опять же контроль ошибок. Плохо?

            Конечно плохо - гибкость меньше :-?

            Добавлено
            Цитата Мяут-Настоящий @
            У меня из-за другого не собирается :)

            Да у тебя когда индексы складывались вместо параметров ты не при чем был :D

            Добавлено
            Цитата D_KEY @
            Кроме того, я по-прежнему не смогу вызывать эту функцию с двумя переменными - опять же контроль ошибок. Плохо?

            D_KEY, я тебе повторяю основную мысль - если ты считаешь, что ТЕБЕ в коде нужна прибитая гвоздями проверка на уровне вызова функции, то подход js ДЛЯ ТЕБЯ - плох. Плох не потому что плох, а потому что ТЕБЕ не подходит. Справедливо и в обратную сторону. То есть пока что разговор идет о вкусовщине в чистом виде, а не о каких-то объективных недостатках - ты ж пока не привел ни одного примера, когда js-стайл реально непроходимо мешает жить :-? И не приведешь - был бы где-то клин уже давно б об этом все вопили :)

            Добавлено
            Все, пойду спать.

            D_KEY, хочешь патрончиков подкину? :) В js область видимости - функция. Не блок, не что-то еще, а только и исключительно функция. То есть:
            ExpandedWrap disabled
              var i;
              for(i=0; i<10; i++)
                  {;}
              alert(i); // выведет 10


            Вот где поплеваться-то можно, а ты все к переменным пристаешь :)

            Добавлено
            Если что - при
            ExpandedWrap disabled
              for(var i=0; i<10; i++)
                  {;}
              alert(i);

            все точно так же :)
              Цитата Астарот @
              то есть почти полный аналог :D

              Только без извращений и со всеми плюшками проверок.

              Цитата
              "Да, по умолчанию null - и что?" спросит читатель твоего кода, и полезет либо в комментарии, либо в код. Что изменилось?

              Зачем ему куда-то лезть? Параметр фактически обозначен как необязательный. А какое в этом случае возьмет значение функция в своей реализации, вызывающий код уже не касается.

              Цитата
              Цитата D_KEY @
              Кроме того, я по-прежнему не смогу вызывать эту функцию с двумя переменными - опять же контроль ошибок. Плохо?

              Конечно плохо - гибкость меньше :-?

              Гибкости ровно столько же. Зачем тебе отправять в функцию больше аргументов, чем она готова принять?

              Цитата
              Справедливо и в обратную сторону. То есть пока что разговор идет о вкусовщине в чистом виде, а не о каких-то объективных недостатках

              Ты хочешь серьезного подробного разговора о типизации? Я пытаюсь поговрить на "простом" уровне, без умных слов и пр. фигни. Так вот твой подход более узок и он полностью реализуем в моем, а вот обратное неверно.

              Цитата
              ты ж пока не привел ни одного примера, когда js-стайл реально непроходимо мешает жить :-? И не приведешь - был бы где-то клин уже давно б об этом все вопили :)

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

              Цитата
              Вот где поплеваться-то можно, а ты все к переменным пристаешь :)

              Неужели фекальность и этого аспекта вызывает у тебя сомнения? Погоди, и до этого дойдем.
              Сообщение отредактировано: D_KEY -
                Цитата D_KEY @
                Может быть. Я хочу увидеть пользу от такого подхода к вызову функций.

                По-тебе гораздо прикольнее как в WinAPI, когда последним параметром передается DWORD dwReserved, куда уже 10 лет от версии к версии МСДН настоятельно рекомендует передавать 0? :D
                  ну не реализовано "значение по умолчанию"... без разницы по какой причине... но это не причина называть язык "богоморзким"...

                  Зато в других языках я не смогу написать
                  ExpandedWrap disabled
                    var myobject = {
                       prop: {
                           prop1: 'property'
                       },
                       method : function(a) {
                          this.prop.prop1 = a;
                       }
                    }
                  и это будет полноценным объектом...
                    Цитата fatalist @
                    Зато в других языках я не смогу написать

                    И зачем это нужно?
                      Цитата Мяут-Настоящий @
                      И зачем это нужно?
                      Затем, чтобы не городить классы, а прямо в процессе создать необходимый единственный экземпляр кастомного объекта...
                        У меня есть стойкое ощущение, что большая часть сторонников недостатков имеет смутное представление о том, для чего именно применяется js <_<

                        Отсюда и стремление притянуть за уши фичи к недостаткам.
                        Сообщение отредактировано: Uncle_Bob -
                          Цитата fatalist @
                          Зато в других языках я не смогу написать
                          Ну вот например http://msdn.microsoft.com/en-us/library/bb397696.aspx
                            Цитата SPM @
                            например

                            например, метод класса ты туда не засунешь
                              так:
                              ExpandedWrap disabled
                                var x = new { m = (Action)delegate() { MessageBox.Show("12"); } };

                              ?
                                Цитата SPM @
                                О, значит в C# не забыли про эту фичу, это плюс ему :yes:
                                Еще примеры?
                                Сообщение отредактировано: fatalist -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (66) « Первая ... 29 30 [31] 32 33 ...  65 66


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.1347 ]   [ 14 queries used ]   [ Generated: 25.08.26, 15:40 GMT ]