Некоторые улучшения в коде Оскара:
- Реализация
Elements
позволяет вызывать метод только для коллекции Element (а функции getSize
и setStyle
всегда доступны).
- Использование
map()
для получения всех высот.
- Возвращает коллекцию, чтобы метод можно было связать.
Таким образом, код становится:
Elements.implement({
equalHeight: function(){
// Get height for all elements
var heights = this.map(function(el){
return el.getSize().y;
});
// Get maximum height
var maxHeight = Math.max.apply(Math, heights);
// Set maximum height to all elements
return this.setStyle('height', maxHeight);
}
});
И это можно записать так:
Elements.implement({
equalHeight: function(){
return this.setStyle('height', Math.max.apply(Math, this.map(function(el){
return el.getSize().y;
})));
}
});