Показать сообщение отдельно
  #7 (permalink)  
Старый 27.03.2013, 17:40
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от megaupload Посмотреть сообщение
function MEGAArray (){};
MEGAArray.prototype = new Array;

MEGAArray.prototype.godOfJavascript = function(){};


Прототипное наследование не, не слышали?
Разумеется, это первое, что приходит в голову каждому, знающему JavaScript на более-менее нормальном уровне. Но каждый (м-м-м, почти каждый) прежде чем писать в форуме, проверил, и убедился что это не работает. Дело в том, что у полученного объекта отсутствует свойство length (точнее оно присутствует, но не свое, а наследуемое, а там оно ноль). Из-за этого методы массива не работают. Свойство length можно добавить, но оно не будет автоматически модифицироваться как должно у массива.
function MEGAArray (){};
MEGAArray.prototype = new Array;

var test = new MEGAArray();
test[0] = "a";
test[1] = "bb";
test[2] = "ccc";

alert( test.length );
Ответить с цитированием