Запрет на наследование стандартных объектов
Пишу простое расширение для Firefox. Мозилла отклонили его по причине:
"Extending the prototype of native objects like Object, Array and String is not allowed because it can cause compatibility problems with other add-ons or the browser itself" Тобишь, не разрешают мне расширять прототипы стандартных объектов. Логично. Объекты творю вот так (по рекомендациям, изложенным в статье на этом же сайте): function MyClass() {}; MyClass.prototype = { member01 : value01, member02 : value02, func01 : function () { ... }, func02 : function () { ... } } // Prototype end Подскажите, плз, это расширяет какой-либо стандартный прототип? Пара подключаемых библиотек творят объекты вот так: function Class01(){ this.member01 = value01; this.member02 = value02; this.func01 = func01; this.func02 = func02; } function func01(){ ... } function func02(){ ... } ...и вот так: function Class02(){ this.member01 = value01; this.member02 = value02; } Class02.prototype.func03 = func03; function func03(){ ... } ...может, это расширяет? Перелопатил весь код, не могу найти, где расширяю стандартные прототипы. Хелп, плз. |
Приведённый вами код не расширяет прототипы стандартных объектов.
|
Жаль, конечно!
Значит, к сожалению, мой вопрос остаётся октрытым.
Если ни один из приведённых выше вариантов не расширяет прототип Object или других, то расширяю где-то ещё. Существует какой-то мало-мальски универсальный способ найти, где я расширил стандартный объект? Что мне вообще нужно искать? Что-то вроде var a =new Array(); a.prototype.func = myFunc; ? |
Например, перебрать свойства прототипов циклом for-in. Стандартные свойства, как правило, не перебираются.
|
Часовой пояс GMT +3, время: 06:04. |