Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запрет на наследование стандартных объектов (https://javascript.ru/forum/misc/15165-zapret-na-nasledovanie-standartnykh-obektov.html)

lsync 15.02.2011 15:53

Запрет на наследование стандартных объектов
 
Пишу простое расширение для 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(){
	...
}


...может, это расширяет?


Перелопатил весь код, не могу найти, где расширяю стандартные прототипы. Хелп, плз.

Kolyaj 15.02.2011 16:01

Приведённый вами код не расширяет прототипы стандартных объектов.

lsync 15.02.2011 18:26

Жаль, конечно!
 
Значит, к сожалению, мой вопрос остаётся октрытым.

Если ни один из приведённых выше вариантов не расширяет прототип Object или других, то расширяю где-то ещё.

Существует какой-то мало-мальски универсальный способ найти, где я расширил стандартный объект? Что мне вообще нужно искать? Что-то вроде
var a =new Array();
a.prototype.func = myFunc;

?

Kolyaj 15.02.2011 19:03

Например, перебрать свойства прототипов циклом for-in. Стандартные свойства, как правило, не перебираются.


Часовой пояс GMT +3, время: 06:04.