Сообщение от 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 относится (но это уже, конечно, мифический случай)?