我使用Jint來解析JS代碼並調用其中的函數。在我使用多線程環境時,我使用了對此問題的迴應中指出的程序分析方法:https://github.com/sebastienros/jint/issues/384在解析的Jint程序中調用函數
所以我擁有的是Jint.Parser.Ast.Program
實例。我可以遍歷其中的IFunctionDeclaration
並找到我的功能。但我不知道如何實際調用的函數...
Dim parser As New Jint.Parser.JavaScriptParser
Dim program As Jint.Parser.Ast.Program = parser.Parse(code)
For Each func As Jint.Parser.IFunctionDeclaration In program.FunctionDeclarations
If func.Id.Name = myFunctionName Then
' How to call the function?
End If
Next
我只找到了一種方法來執行整個Program
。我假設我必須這樣做,以便這些函數實際上在引擎中定義。但是,如何在腳本中調用某個函數呢?
我不明白你爲什麼要這樣做。你只想調用你的函數,如果它在腳本中定義的話?爲什麼你需要一個解析器來做到這一點,你可以嘗試調用它,如果它被定義,這是一個優化? – Tewr