ES6 offers some new syntax for dealing with this: "arrow functions". Arrow function also make working with "higher order" functions (functions that take functions as parameters) much easier to work with.
The new "fat arrow" notation can be used to define anonymous functions in a simpler way.
There is one important difference, however: arrow functions do not set a local copy of this, arguments, super, or new.target. When this is used inside an arrow function JavaScript uses the this from the outer scope. Consider the following example:
Let's try this code on ES6 Fiddle (http://www.es6fiddle.net/). As we see, this gives us an error, since this is undefined inside the anonymous function.
Now, let's change the method to use the arrow function:
Here this inside the arrow function refers to the instance variable.
Warning arrow functions do not have their own arguments variable, this can be confusing to veteran JavaScript programmers. super, and new.target are also scoped from the outer enclosure.