我沒有找到這個「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存在?看起來像一個不需要的演員.. – 2010-09-23 18:46:57
因爲那些XPCOM組件不一定是JavaScript對象:* XPCOM是一個跨平臺組件對象模型,類似於Microsoft COM。它有多種語言的綁定,除了C++之外,還允許XPCOM組件在JavaScript,Java和Python中使用和實現。* https://developer.mozilla.org/en/XPCOM據我所知,它更多就像幾種語言之間的橋樑。 – 2010-09-23 18:50:18
這不是傳統意義上的「鑄造」 - 它更多的是獲得了該對象的「組成部分」(參見費利克斯提到的文檔)。在你的情況下,把它看做像下面這樣的「for scroll.boxObject,得到它實現的接口,叫做'nsIScrollBoxObject'。 – pnomolos 2010-09-23 18:51:14