Вход

Просмотр полной версии : Подмена родительского класса (мож кто осилет)


kichSman
30.06.2013, 19:36
Вопрос скорее теоретический, суть которого в следующем.

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

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

Проще говоря:

var div = document.querySelector('div'),
Test;

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

div instanceof Test //true, возможно ли?

zebra
30.06.2013, 21:14
Test.prototype = HTMLDivElement.prototype;

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

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

Но у меня возник вопрос, а можно ли сделать это нативно, т.е. через прототипы и собственно instanceof

zebra
30.06.2013, 22:13
Без указания прототипа не знаю. :no:

dmitriymar
30.06.2013, 23:00
Как раз суть вопроса в том, чтобы включить объект в цепочку родителей 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.с);

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