我想下面的函數從VBScript轉換爲JavaScript:轉換的VBScript VT_ARRAY | VT_U1變函數參數的JavaScript
Object.UtilBlobToVariant(VARIANT * PV,長BlobPointer,長BlobSize)
pv
何處被定義爲:
,其與類型返回一個VARIANT(VT_ARRAY | VT_U1)
UtilBlobToVariant
函數是第三方COM庫的一部分,所以我無法更改其定義。
這兩個長參數在我的這個函數的JavaScript版本中工作得很好,但參數pV
給我一個「類型不匹配」的錯誤後綴,因爲pV
總是回到未定義狀態。
Object
是一個ActiveX對象,所以我的目標是嚴格的Internet Explorer,因爲這個和其他的COM依賴關係。我試過只是傳遞一個var,或者將它實例化爲一個空數組[]
或一個空對象{}
但這些都沒有奏效。這甚至有可能嗎?
[在JavaScript中 「內外兼修」 參數工作]的可能重複(http://stackoverflow.com/questions/ 5122704 /用-out-parameters-in-javascript) – 2014-10-20 05:21:19
@CheranShunmugavel - 重複,因爲他們發現有沒有解決方法,通過引用和特定的ActiveX函數?我想也許是一個不同的問題與相同的答案。我到達了,但我希望有一些可以完成的事情。 – DanM7 2014-10-20 14:19:27
我認爲這與某個特定功能或其他功能無關;只是JScript不支持「out」參數。這就是我投票結束的原因。在不知道第三方API的情況下,唯一的長遠想法是,函數應該被稱爲'var arr = Object.UtilBlobToVariant(blobPointer,blobSize)',但這是基於函數聲明看起來像來自C++的事實我有一些模糊的回憶,看到一個C++ COM API,其中函數的返回值實際上被列爲第一個參數。 – 2014-10-21 05:16:34