Ich kann dir aus Erfahrung sagen, die wenigstens Frameworks die man sich mal von irgendwo her holt machen Gebrauch von Object.defineProperty() ... leider. Das liegt daran, dass (mittlerweile weniger) bis vor leider gar nicht all zu langer Zeit zu wenige Browser dieses Feature unterstützt haben. Daher ist noch viel zu viel Code in Verwendung, der es nicht benutzt, oder auch nur beschissen polyfillt.

Und die .forEach() Variante funktioniert für alle Fälle wunderbar.

Vgl.:
Code:
var arr = new Array(5);
arr[0] = 0;
arr[3] = 3;
arr.forEach(function(){
	console.log('each', arguments);
});

und
Code:
var arr = new Array(5);
arr.forEach(function(){
	console.log('each', arguments);
});
_________________________
There is no good without evil, but evil must not be allowed to flourish.
There is passion, yet peace; serenity, yet emotion; chaos, yet order.