"Understanding Functions and "this" in the World of ES2018"
Abstract
The "this" keyword has long been a source of confusion, and new features added to JavaScript in recent years have muddled the picture even more.
This talk will walk you through the details of how "this" works in the context of modern JavaScript. We'll cover the differences between function declarations, function expressions, arrow functions, object-shorthand function notation, and class fields, as well as best practices when integrating with other ES2015+ goodies.
Video
Slides
Useful Links
MDN has good documentation on the basic's of how this works. I would especially recommend reading up on how strict mode affects this, which was not touched upon in the talk.
This is the formal specification proposal for Class Fields in JavaScript. It has a number of helpful examples I recommend checking out.
The React documentation does a good job explaining the complications with "this" event handlers, performance implications, etc.