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