Рассмотрим этот простой класс Mootools:
var Garden = new Class({
fruits : {
banana : 'yellow',
kiwi : 'brown',
strawberry : 'red'
},
initialize : function() {
console.log(this.fruits);
console.log(this.fruits.banana);
console.log(Object.keys(this.fruits));
}
});
var g = new Garden;
Выход (в консоли Chrome):
reset.F
yellow
[]
Третья строка должна быть: ['банан', 'киви', 'клубника']
Проблема заключается в методе сброса Mootools, который создает новый объект с исходным объектом Fruit в качестве прототипа. Поскольку Object.keys выполняет итерацию проверки hasOwnProperty, он возвращает пустой массив.
Есть идеи, как получить ожидаемый результат?