You have already learned what functions are and how you can declare functions. Well, whatever you have learned till now was the syntax in ES5. You’ve got a new syntax called “arrow functions” to declare functions in ES6. Let’s look at this new syntax in the next video.
In the last video, you learned about a alternative to defining traditional functions, viz. using arrow functions, which behave as the anonymous functions. You witnessed how they’re a quick and effective way of declaring functions. You are no longer required to use the function keyword. If you have a single parameter, using arrow functions, you can skip writing the parentheses. But beware, if you have no parameters, then you need parentheses.
Also, when you have a single return statement, you can omit the word return keyword as well as the curly braces. But once again, the catch over here is that there can be no other statement in the function apart from the return statement.
Do you remember the part where the ‘this’ keyword lost its reference when you defined it inside a function written inside a method in an object? Well, arrow functions seem to be a solution for that too. Let’s see how arrow function solve this problem in the next video.
This happened because arrow functions don’t have a ‘this’ keyword of their own, so anything to do with ‘this’ inside an arrow function will point to the scope of the function the arrow function is written inside.
Well, are you thinking that you can change the outer function too to make it an arrow function? Let’s see what happens when you do that.
In the last video, you looked at how the outer function, when changed to an arrow function, starts pointing to the scope in which this outer function it is written inside, which is the global scope of the window object. Thus, the ‘this’ keyword inside the outer function points to the window object. Now, when the inner function uses the ‘this’ keyword, it actually references the scope of the outer function. Since the inner function gets its ‘this’ reference from the outer function which now points to the global object, the inner function also starts pointing to the global object.
So to summarise, you learned about the cool way of writing functions as arrow functions and their benefits like shortening the amount of code that you are required to write. Also, they solve the problem of scoping by a large extent by not bonding the ‘this’ to themselves.