JavaScript wart: thisBinding in setTimeout and setInterval

By Xah Lee. Date: . Last updated: .

thisBinding broke in setTimeout and setInterval

a JavaScript wart.

// 2026-05-04
// calling object.method() does not get thisbinding correctly
// when in setTimeout(object.method(), delay)
// why?

const xobj = {
 f_print_thisbinding() {
  console.log(this);
 },
};

setTimeout(xobj.f_print_thisbinding, 1000);
// Window {}

why this binding does not work in setTimeout

ai answer

ai js thisbinding setTimeout 2026-05-04 1701e
ai js thisbinding setTimeout 2026-05-04 1701e

JavaScript really sucks.