Что подразумевается под словами «этот интерфейс может быть получен с помощью специфических для привязки методов приведения к экземпляру интерфейса Node». - PullRequest
0 голосов
/ 27 апреля 2018

Здесь , он гласит: «Таким образом, этот интерфейс может быть получен с помощью специфических для привязки методов приведения к экземпляру интерфейса Node.»

Что означает, что интерфейс может быть " получен " посредством "использования методов приведения, привязанных к привязке?"

Что такое "методы привязки, специфичные для привязки?"

Я понимаю, что слово "привязка" здесь относится к языку привязки . И, что "методы приведения" являются специфическими для привязки. Но мне все еще не ясно, что означает это предложение.

На практике я хотел бы создать экземпляр Object, который наследуется от EventTarget.prototype, и вызвать EventTarget.prototype's addEventListener для него.

Я понимаю, что это невозможно. Это обсуждается здесь . Я думаю, причина, по которой это невозможно, может быть связана с этим вопросом.

1 Ответ

0 голосов
/ 27 апреля 2018

языковых привязок IDL.

Ссылка в посте - на спецификацию DOM2 интерфейса EventTarget, написанную на IDL ("Язык определения интерфейса"). В качестве языка определения IDL описывает то, что должно быть предоставлено в интерфейсе, написанном на реальном языке, таком как JavaScript, Java, MicoSoft Visual Basic для приложений или C ++, например.

"этот интерфейс может быть получен с помощью специфических для привязки методов приведения к экземпляру интерфейса Node."

- это технический способ сказать «используйте методы и свойства, задокументированные для языка, который вы используете, на узле DOM, а не точную формулировку спецификации, приведенной здесь. Наиболее связывающая из всех, с которой мы наиболее знакомы на веб-страницах». Это, конечно, для JavaScript. «Методы приведения» могут относиться к тому, как реализация будет автоматически выполнять преобразования между языком программирования и DOM по мере необходимости - например, преобразование чисел JavaScript в и из целочисленных представлений в некоторых атрибутах DOM.


EventTargetPrototype

В Firefox это объект в цепочке прототипов узлов DOM, содержащий addEventListener и связанные функции. Снова это Firefox, вы можете получить к нему доступ как

Object.getPrototypeOf( Node.prototype))

, а затем создайте на нем прототип, используя

Object.create(Object.getPrototypeOf( Node.prototype))

Однако это не сработало для отправки событий. Кажется, требуется дополнительная поддержка (возможно, и интерфейс Node?). Использование HTMLSpanElement для целевого «объекта узла» работало в Firefox для отправки и прослушивания события без добавления его в DOM:

let a = document.createElement("SPAN");
a.addEventListener( "custom", function() {console.log("wow");}, false);
a.dispatchEvent( new CustomEvent("custom"));

Буду ли я использовать это в рабочем коде? Точно нет. За исключением случаев, когда тысячи тестировали его до меня, в каждом типе браузера, который я мог бы поддержать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...