Мне любопытно, если это нормально
реализация Array.filter ()
способ.
Не только ваш код верен, это прекрасный пример. для Array.filter
использования.
Я не смог выяснить
реализация обратного вызова
функция для метода filter (),
где обратный вызов был за пределами
Функция getGallery ().
Может быть, но это главное - идея этих функций обратного вызова должна использоваться главным образом как анонимные функции, такие как:
//Returns a gallery Object by the specified name
function getGallery(galleryName:String):Object
{
return galleries.filter(function(gallery:*, idx:int, a:Array):Boolean {
return (gallery.name == galleryName);
}).shift();
}
Обратите внимание на компактный код.
Интересно, есть ли способ получить
Функция isGallery вне
Объем getGallery?
Это невозможно напрямую, но возможно, если вы сделаете это статической функцией в родительском классе, но зачем это делать? Посмотрите приведенный выше пример кода, он настолько компактен и может использоваться многократно.
В качестве примечания я бы заменил galleries
на:
var galleries:Object = {
'Portraits': [],
'Landscapes': [],
'Still Lifes': []
};
Таким образом, ваш метод getGallery становится операцией O (1):
galleries[name]