Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Аналог __proto__ в ie (8+) (https://javascript.ru/forum/css-html-internet-explorer/27820-analog-__proto__-v-ie-8-a.html)

trikadin 25.04.2012 21:46

Аналог __proto__ в ie (8+)
 
Есть ли таковой? Нужно нескольким определённым html-элементам добавить в прототип свойства. Заменять их прототип на другой не вариант (да и не получится, собственно), а добавлять каждому отдельно - не будет работать hasOwnProperty (т.е. будет, конечно, но не так, как надо).

trikadin 25.04.2012 21:50

В голову пришло вешать геттеры/сеттеры (благо в ie8 они есть) на элемент, и смотреть, нет ли такого у него в прототипе, но это как-то не очень...

Раед 25.04.2012 21:54

Цитата:

Сообщение от trikadin
не будет работать hasOwnProperty

Может заодно и hasOwnProperty переопределить...

trikadin 25.04.2012 22:00

Цитата:

Сообщение от Раед
Может заодно и hasOwnProperty переопределить...

Мне не очень нравится такой вариант, но чует моё сердце - извращаться всё равно придётся... Так что надо подумать о таком.

Gvozd 25.04.2012 22:12

Я считаю порочной практику изменения, или тем более переопределения прототипов не своих объектов.
trikadin,
Расскажите пожалуйста, что за задача перед вами стоит, что вам приходится использовать такие хаки?

trikadin 25.04.2012 22:32

Цитата:

Сообщение от Gvozd
Расскажите пожалуйста, что за задача перед вами стоит, что вам приходится использовать такие хаки?

Мне нужно, чтобы у созданного объекта был аксессор (или акцессор? Хрен знает. Setter/getter, короче). В ie8 это делается через Object.defineProperty и только для dom-объектов. При этом надо, чтобы в прототип объектов можно было добавлять новые св-ва/методы.

Тяжела и неказиста, короче...

devote 25.04.2012 23:06

trikadin, :)
(взял попкорн)

trikadin 25.04.2012 23:09

Цитата:

Сообщение от devote
trikadin,
(взял попкорн)

devote, а до меня не сразу дошло (только когда уже реализовал, блин), что вариант с vb-вставками не прокатит. Поскольку изменение прототипа должно быть возможным. А с ними - хрен.

devote 25.04.2012 23:15

trikadin, ну яж вроде говорил тебе что в VB объект добавить свойства не возможно... а если добавить не возможно значит и прототипа не будет... об этом весь инет гудит что VB обекты можно делать только статическими.. И это огромный недостаток, который пока еще никто не поборол.
(но я буду продолжать есть покорн, может тебе удастся побороть это)

trikadin 25.04.2012 23:19

Цитата:

Сообщение от devote
trikadin, ну яж вроде говорил тебе что в VB объект добавить свойства не возможно... а если добавить не возможно значит и прототипа не будет... об этом весь инет гудит что VB обекты можно делать только статическими..

Ну блин да.

Цитата:

Сообщение от devote
И это огромный недостаток, который пока еще никто не поборол.
(но я буду продолжать есть покорн, может тебе удастся побороть это)



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