Вещи, которые определены WebIDL

Прочитав этот пост, http://mcc.id.au/2013/lca-webidl/

У меня есть несколько вопросов на странице 20,

  1. Что происходит, когда вы передаете слишком много / мало аргументов.

  2. Что происходит, когда вы берете функцию, соответствующую операции IDL, и применяете ее к объекту другого типа.

  3. Как наследование интерфейса соответствует прототипу цепочки.

  4. Как DOM-объекты строковые.

Может кто-нибудь дать конкретное объяснение или пример к этим пунктам.

Спасибо

1 ответ

Решение
  1. Если вы передаете слишком много аргументов, дополнительные игнорируются. Пытаться document.getElementsByTagName("a", "b"), Если вы пройдете слишком мало, вы получите исключение: document.getElementsByTagName(),
  2. Если вы примените операцию WebIDL к неправильному типу объекта, вы получите исключение. См. http://heycam.github.io/webidl/ шаг 4 в разделе "Попробуйте выполнить следующие шаги". document.getElementsByTagName.call(document.body, "div") например.
  3. Наследование интерфейса соответствует цепочке прототипов, как описано на http://heycam.github.io/webidl/, но вкратце, если у вас есть interface Foo : Bar { }; затем Object.getPrototypeOf(Foo.prototype) === Bar.prototype, Так, например, прототип HTMLElement.prototype является Element.prototype,
  4. Объекты DOM с определенным строковым элементом (например, HTMLAnchorElement), но соответствующие спецификации определяют их как. Все остальные объекты становятся "[объект MostDerivedInterfaceName]".
Другие вопросы по тегам