Я думаю, что причина в http://dean.edwards.name/weblog/2006/11/hooray/ не работает, потому что это анонимная функция. Итак, вместо следующего:
// create the constructor
var Array2 = function() {
// initialise the array
};
// inherit from Array
Array2.prototype = new Array;
// add some sugar
Array2.prototype.each = function(iterator) {
// iterate
};
вы бы хотели что-то вроде этого:
function Array2() {
}
Array2.prototype = new Array();
Исходя из моего собственного тестирования, свойство length
поддерживается в IE с этим наследованием. Кроме того, все, что было добавлено в MyArray.prototype
, похоже, не добавляется в Array.prototype
. Надеюсь, это поможет.