Я не нахожу, что это за тип этого «xpcomInterface», и нет документации какого-либо класса с этим именем. Есть идеи?Каков тип этого объекта? И где это задокументировано?
Этот фрагмент кода является с сайта Mozilla,:
var next = elements.item(i+1);
var xpcomInterface = scroll.boxObject.QueryInterface(
Components.interfaces.nsIScrollBoxObject);
xpcomInterface.ensureElementIsVisible(elements);
--update
Я нашел boxObject, что приводит к nslBoxObject, но это не имеет никакого отношения к какой-либо QueryInterface
, используемый выше. Там также есть ссылки на xulplanet.com, которых больше нет.
странно, если javascript не указывает тип, почему этот QueryInterface существует? выглядит как ненужное кастинг для меня .. –
Поскольку эти компоненты XPCOM не обязательно являются объектами JavaScript: * XPCOM - это объектная модель для кросс-платформенных компонентов, аналогичная Microsoft COM. Он имеет несколько языковых привязок, позволяя использовать компоненты XPCOM и реализовывать их в JavaScript, Java и Python в дополнение к C++. * Https://developer.mozilla.org/en/XPCOM Насколько я понял, это больше как мост между несколькими языками. –
Это не «кастинг» в традиционном смысле - это больше, что он получает «компонент» этого объекта (см. Упомянутые документы Felix). В вашем случае подумайте об этом как о чем-то вроде следующего: «для scroll.boxObject, получите интерфейс, который он реализует, который называется« nsIScrollBoxObject ». – pnomolos