На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (66) « Первая ... 58 59 [60] 61 62 ...  65 66  ( Перейти к последнему сообщению )  
> JS и его "недостатки"
    JS калечит мозг, это очевидно. Увидел такую НЁХ на одном форуме как пример «гибкости»:
    ExpandedWrap disabled
      ob = function(arg) { var prop = 1, meth = function(x) { return x+x; }; return eval(arg) }
      console.log( ob("meth(prop)") )

    Автор еще и утверждает, что это объект.
    Сообщение отредактировано: korvin -
      Цитата korvin @
      Автор еще и утверждает, что это объект.

      В js вообще все объект, так что тут он, наверное, прав. И это единственное в чем он прав - НЁХ абсолютная, да еще и с eval. Автор долбоящер.
        Цитата Астарот @
        В js вообще все объект

        Кроме флоатов, стрингов и интеджеров - это примитивы с объектным интерфейсом =)
          Цитата Астарот @
          В js вообще все объект, так что тут он, наверное, прав.

          В чем тут проявляется «объектность»?

          З.Ы. Говорить «все есть объект» — это все равно, что говорить «все есть предмет». Что такое объект (в JS хотя бы)?

          Добавлено
          Благо, что (по моим тестам по крайней мере, может упустил чего) ob("prop = 123"); не меняет значения переменной. С другой стороны его вообще сложно изменить: http://ideone.com/4OK1t4
          Вот второе в моем понимании вполне объект, а первое — нет.
            Цитата korvin @
            З.Ы. Говорить «все есть объект» — это все равно, что говорить «все есть предмет». Что такое объект (в JS хотя бы)?

            объекты в JS передаются по ссылке и имеют возможность издеваться над исходником (т.е. исходными данными), т.е. изменять исходный объект. С примитивом всё наоборот - передаётся только по значению и исходный вариант изменить нельзя. Если объявил int 42, то это будет 42 до конца жизни

            Добавлено
            например:
            ExpandedWrap disabled
              var a = "asd";
              a[0] = "b";
              console.log(a); // asd - строка это примитив


            с другой стороны:
            ExpandedWrap disabled
              var a = ['a', 's', 'd'];
              a[0] = "b";
              console.log(a.join('')); // bsd - уже объект
              То есть объект в JS — это любые мутабельные данные? Оригинально...
                Цитата korvin @
                То есть объект в JS — это любые мутабельные данные? Оригинально...

                ну в большинстве ЯП это так, объект - это что-то более сложное, нежели просто данные (т.е. мутабельный тип) + передаётся по ссылке. Взять хоть руби или пых =) на счёт питонки - не скажу
                  Цитата Serafim @
                  С примитивом всё наоборот - передаётся только по значению и исходный вариант изменить нельзя. Если объявил int 42, то это будет 42 до конца жизни

                  Да правда что. Замыканием это "никогда" превращает в "когда хочу".
                    К слову - в PHP примитивы (ака скаляры) - это: массив (он же хеш), флоат (он же дабл), интеджер, стринг, булево - они передаются по значению, всё остальное - генераторы (сопрограммы), замыкания, объекты, ресурсы и прочее - по ссылке. Разница между PHP и JS лишь в том, что в первом - есть метод clone() и языковая конструкция "&" для указания передачи по значению или по ссылке любых типов данных. В JS же - такого нет, по-этому для передачи массива по значению - используется магия, вроде: [1, 2, 3].splice(0), для инстансов - проход по прототипу и клонирование функций\свойств отдельно в новый объект, ну и т.д. А что бы передать примитив по ссылке - придётся геммороиться трындец как, например оборачивать в функцию, которая устанавливает\возвращает значение :D

                    Короче большая Ж =)))

                    Добавлено
                    Цитата MyNameIsIgor @
                    Замыканием это "никогда" превращает в "когда хочу".

                    безымянная функция - тоже вроде ссылочный тип. Осталось придумать способ сохранить значение этого "никогда" внутри этого замыкания, дабы оно не ковертилось в "когда-хочу" =)
                      Цитата Serafim @
                      безымянная функция - тоже вроде ссылочный тип

                      Я это и не опровергал.
                      Цитата Serafim @
                      Осталось придумать способ сохранить значение этого "никогда" внутри этого замыкания, дабы оно не ковертилось в "когда-хочу"

                      В этом вашем недоскрипте замыкается всё по ссылке. И при замыкании мы получаем либо ссылку на примитивные данные, либо ссылку на ссылку на объект :crazy: Например.
                        Цитата MyNameIsIgor @
                        Например.

                        паринь, палехче, у меня к концу рабочего дня и так мозг уезжает, а тут ещё JS сверху :D
                          Цитата Serafim @
                          паринь, палехче

                          А щито такое? Здесь же полтемы посвящено обзыванию меня неосилятором этого замечательнейшего наилегчайшего язычга :lool:
                            этот наилегчайший яп до сих пор пенетрирует мне мозг своей косорукостью, благодаря ооп моего головного мозга =))
                              Цитата MyNameIsIgor @
                              В этом вашем недоскрипте замыкается всё по ссылке. И при замыкании мы получаем либо ссылку на примитивные данные, либо ссылку на ссылку на объект :crazy: Например.

                              И где там замыкание?

                              Добавлено
                              С замыканием вот так что ли будет http://ideone.com/nh8noG
                                Цитата MyNameIsIgor @
                                А щито такое? Здесь же полтемы посвящено обзыванию меня неосилятором этого замечательнейшего наилегчайшего язычга

                                а, не, всё верно. Ты же объявил var i в глобальном контектсе, вот JS и обращается к ней, когда ты пишешь i = newvalue

                                Добавлено
                                Цитата Serafim @
                                Ты же объявил var i в глобальном контектсе, вот JS и обращается к ней, когда ты пишешь i = newvalue

                                Во, астя всё верно написал
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (66) « Первая ... 58 59 [60] 61 62 ...  65 66


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