Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2013, 19:36
Аспирант
Отправить личное сообщение для kichSman Посмотреть профиль Найти все сообщения от kichSman
 
Регистрация: 16.10.2009
Сообщений: 69

Подмена родительского класса (мож кто осилет)
Вопрос скорее теоретический, суть которого в следующем.

Есть созданный div элемент, который, соответственно, потомок HTMLDivElement и есть класс Test

Можно ли каким либо костылем сделать так, чтоб при проверки наследования у DIV элемента в цепочке родителей был Test

Проще говоря:
var div = document.querySelector('div'),
     Test;

Test = function(){};
Test.prototype = {};

div instanceof Test //true, возможно ли?
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2013, 21:14
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Test.prototype = HTMLDivElement.prototype;
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2013, 21:32
Аспирант
Отправить личное сообщение для kichSman Посмотреть профиль Найти все сообщения от kichSman
 
Регистрация: 16.10.2009
Сообщений: 69

Сообщение от zebra
Test.prototype = HTMLDivElement.prototype;
Как раз суть вопроса в том, чтобы включить объект в цепочку родителей div-элемента, который уже запилен в DOM, чтобы у самого div-а спросить, а не у объекта.

Если на пальцах, то в некоторых библиотеках к элементам приписывают дополнительное собственное свойство и ориентируются на него, принадлежит ли этот элемент к классу или нет (например, когда присваивают методы и свойства собственного UI).

Но у меня возник вопрос, а можно ли сделать это нативно, т.е. через прототипы и собственно instanceof
Ответить с цитированием
  #4 (permalink)  
Старый 30.06.2013, 22:13
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Без указания прототипа не знаю.
Ответить с цитированием
  #5 (permalink)  
Старый 30.06.2013, 23:00
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от kichSman
Как раз суть вопроса в том, чтобы включить объект в цепочку родителей div-элемента, который уже запилен в DOM, чтобы у самого div-а спросить, а не у объекта.
такое уже давно не курят

function A(){
 this.с = 40;
}
A.prototype.b = 30;

function B(){
 this.a = 20;
}

B.prototype = A.prototype;
A.prototype = new B();

var a = new A();

alert( a instanceof B);
alert( a instanceof A);

alert(a.a);
alert(a.b);
alert(a.с);

Последний раз редактировалось dmitriymar, 01.07.2013 в 08:51.
Ответить с цитированием
  #6 (permalink)  
Старый 01.07.2013, 23:55
Аспирант
Отправить личное сообщение для kichSman Посмотреть профиль Найти все сообщения от kichSman
 
Регистрация: 16.10.2009
Сообщений: 69

Нет, речь опять таки не про наследование объектов.
В общем, порасмыслев мозгами и несколькими изощрениями, пришел к выводу, что через наследование BOM загадить DOMом не выйдет.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17