Custom Array-like objects
function Collection() { var i = 0, len = arguments.length; if (len == 1 && typeof arguments[0] == 'number') { for (i; i < arguments[0]; ++i) { this[i]; } } else { for (i; i < len; ++i) { this[i] = arguments[i]; } } this.length = i; } Collection.prototype = new Array(); Collection.prototype.constructor = Collection; Collection.prototype.toString = function () {return this.join()}; var arr = new Array(6); var dc = new Collection(6); arr.push('test'); dc.push('test'); console.debug(arr, 'Array'); console.debug(dc, 'Collection');

So far this is working in Chrome 9, Safari 5 and Firefox 3.6. I’ll update this as I test each new browser, biut it’s safe to say it wont work in IE6