JavaScript wart: thisBinding in setTimeout and setInterval
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
JavaScript really sucks.
JavaScript sucks
Spec Reading
- Reading JavaScript spec notes (2015)
- JavaScript Grammar is Not Context-Free (2016)
- JavaScript Syntax Complexity: Lookahead (2015)
- JavaScript sort, is fragile, and most complex, convoluted (2017)
- JavaScript Spec, Term “instance” is Not Defined (2017)
- JavaScript Spec Change on Date Time Zone Default (2022)
- The term INSTANCE in Object Oriented Programing
sucks
- JavaScript Sucks (2017)
- JavaScript is Truly Bad Language (2025)
- JavaScript Sucks. Variations of Looping Thru Array (2025)
- Xah JavaScript Style Guide for FP
- JavaScript, Write All If Statement as If Expression