Sample code for 30+ languages & platforms
AutoIt

Call a JavaScript Function Returning an Object

See more JavaScript Examples

Demonstrates how to call a JavaScript function that returns an object.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; This is the JavaScript function we'll call:

; function getSettings() {
;     return {
;         theme: "dark",
;         notifications: true,
;         version: 1.0
;     };
; }

$oSbScript = ObjCreate("Chilkat.StringBuilder")
$oSbScript.Append("function getSettings() {")
$oSbScript.Append("    return {")
$oSbScript.Append("        theme: ""dark"",")
$oSbScript.Append("        notifications: true,")
$oSbScript.Append("        version: 1.0")
$oSbScript.Append("    };")
$oSbScript.Append("}")

$oJs = ObjCreate("Chilkat.Js")

$oResult = ObjCreate("Chilkat.JsonObject")
$oResult.EmitCompact = False

; Call Eval to add the function to the context's global object
$bSuccess = $oJs.Eval($oSbScript,$oResult)
If ($bSuccess = False) Then
    ; Examine the result for an exception.
    ConsoleWrite($oResult.Emit() & @CRLF)

    ; Also examine the LastErrorText.
    ConsoleWrite($oJs.LastErrorText & @CRLF)
    Exit
EndIf

; ------------------------------------------------------------------------------
; Call the function getSettings()

$oFuncCall = ObjCreate("Chilkat.JsonObject")

; Create JSON specifying the function name and arguments
; The function has no arguments, so we only specify the name.

; {
;   "name": "getSettings",
; }

$oFuncCall.UpdateString("name","getSettings")

$bSuccess = $oJs.CallFunction($oFuncCall,$oResult)
If ($bSuccess = False) Then
    ; Examine the result for an exception.
    ConsoleWrite($oResult.Emit() & @CRLF)

    ; Also examine the LastErrorText.
    ConsoleWrite($oJs.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite($oResult.Emit() & @CRLF)

; Output:
; {
;   "type": "object",
;   "value": {
;     "theme": "dark",
;     "notifications": true,
;     "version": 1
;   }
; }

; Examine the object's members
ConsoleWrite("theme: " & $oResult.StringOf("value.theme") & @CRLF)
ConsoleWrite("notifications: " & $oResult.BoolOf("value.notifications") & @CRLF)
ConsoleWrite("version: " & $oResult.IntOf("value.version") & @CRLF)

; Output:
; theme: dark
; notifications: True
; version: 1