name: duk_call_method proto: | void duk_call_method(duk_context *ctx, duk_idx_t nargs); stack: | [ ... func! this! arg! ...! argN! ] -> [ ... retval! ] summary: |

Call target function func with an explicit this binding and nargs arguments (not counting the function and the this binding value). The function object, the this binding value, and the function arguments are replaced by a single return value. An error thrown during the function call is not automatically caught.

If the target function is not strict, the binding value seen by the target function may be modified by processing specified in Entering Function Code.

This API call is equivalent to:

  var retval = func.call(this_binding, arg1, ..., argN);
  
example: | /* The target function here prints: * * this: 123 * 2 3 * * and returns 5. */ duk_push_string(ctx, "function(x,y) { print('this:', this); " "print(x,y); return x+y; }"); duk_eval(ctx); /* -> [ ... func ] */ duk_push_int(ctx, 123); duk_push_int(ctx, 2); duk_push_int(ctx, 3); duk_call_method(ctx, 2); /* [ ... func 123 2 3 ] -> [ 5 ] */ printf("2+3=%ld\n", (long) duk_get_int(ctx, -1)); /* prints 5 */ duk_pop(ctx); tags: - call introduced: 1.0.0