=proto void duk_call(duk_context *ctx, int nargs); =stack [ ... func! arg1! ...! argN! ] -> [ ... retval! ] =summary

Call target function func with nargs arguments (not counting the function itself). The function and its arguments are replaced by a single return value. An error thrown during the function call is not automatically caught.

The target function this binding is initially set to undefined. If the target function is not strict, the binding is replaced by the global object before the function is invoked; see Entering Function Code. If you want to control the this binding, you can use duk_call_method() or duk_call_prop() instead.

This API call is equivalent to:

var retval = func(arg1, ..., argN);

or:

var retval = func.call(undefined, arg1, ..., argN);
=example /* Assume target function is already on stack at func_idx; the target * function adds arguments and returns the result. */ int func_idx; duk_dup(ctx, func_idx); duk_push_int(ctx, 2); duk_push_int(ctx, 3); duk_call(ctx, 2); /* [ ... func 2 3 ] -> [ 5 ] */ printf("2+3=%d\n", duk_get_int(ctx, -1)); duk_pop(ctx); =tags call =seealso duk_call_method duk_call_prop