md` ### Table of Contents
1. This value
2. Constructors
3. arguments object
4. Implicit return
5. Methods
Understanding the differences between regular and arrow functions helps choose the right syntax for specific needs.
**this** value inside a regular function is dynamic and depends on the invocation. But **this** inside the arrow function is bound lexically and equals to this of the outer function.
**arguments** object inside the regular functions contains the list of arguments. The arrow function, on the opposite, doesn’t define **arguments** (but you can easily access the arrow function arguments using a rest parameter **...args**).
If the arrow function has one expression, then the expression is returned implicitly, even without using the **return** keyword.
Last but not least, you can define methods using the arrow function syntax inside classes. Fat arrow methods bind **this** value to the class instance.
Anyhow the fat arrow method is invoked, **this** always equals the class instance, which is useful when the methods are used as callbacks.
To understand all types of functions in JavaScript, I recommend checking
Ссылка на нормальную статью [здесь](https://dmitripavlutin.com/differences-between-arrow-and-regular-functions/)
`