Common this-related bugs include losing context in event handlers, setTimeout callbacks, and promise chains. Debugging involves logging this, using breakpoints, and applying explicit binding or arrow functions.
Real-world scenarios include: (1) passing a class method to setTimeout causing this to become undefined; (2) using this in a promise callback inside a method; (3) event listeners in React class components. Debugging steps: add console.log(this) before the issue, use browser DevTools to set breakpoints and inspect the call stack, and check for implicit binding loss. Fixes include using .bind(this), arrow functions, or storing this in a variable (const self = this).