Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2011, 14:53
Интересующийся
Отправить личное сообщение для lsync Посмотреть профиль Найти все сообщения от lsync
 
Регистрация: 04.09.2010
Сообщений: 12

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


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


Перелопатил весь код, не могу найти, где расширяю стандартные прототипы. Хелп, плз.
Ответить с цитированием
  #2 (permalink)  
Старый 15.02.2011, 15:01
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Приведённый вами код не расширяет прототипы стандартных объектов.
Ответить с цитированием
  #3 (permalink)  
Старый 15.02.2011, 17:26
Интересующийся
Отправить личное сообщение для lsync Посмотреть профиль Найти все сообщения от lsync
 
Регистрация: 04.09.2010
Сообщений: 12

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

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

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

?
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2011, 18:03
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 02:10
Наследование Fliand Events/DOM/Window 0 12.08.2009 19:48
Быстрый поиск объектов Shasoft Общие вопросы Javascript 7 30.07.2009 04:28