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

Сообщение от hogart
Хорошо, возьмем не встроенные классы, а встроенные функции
А что с ними "не так"? Их можно "расширить"?

Сообщение от hogart
И опять таки — расширение встроенных классов запрещено на уровне языка
Всего лишь - одна из реализаций. А в JS и Ruby - не запрещено, и что?

Сообщение от hogart
А там есть for (i = 0; i < 10; i++)?
Нет, там нет такого цикла. Кстати сказать, если расширен Array.prototype, я использую индексный цикл или .forEach (нежели, естественно, for...in и .hasOwnProperty).

И ещё, в JS (с версии 1.7) достпен Array comprehensions (который позаимствован из Питона), и там используется синтаксис for / for each ... in:

var evens = [i for each (i in [1, 2, 3, 4]) if (i % 2 == 0)];


Андрей Параничев, мне кажется, вторая запись более наглядна, определяет сразу принадлежность метода, нежели первая, глобальная функция:

- removeFromArray(array, object);
- array.remove(object);

А если, ещё назовут не removeFromArray а просто remove - думай потом, к чему этот remove относится (но это уже, конечно, мифический случай)?
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 13.08.2009 в 11:39.
Ответить с цитированием