> **danger** Regular functions declared with the **`function` keyword have `this` inherited from the caller**, whereas **arrow functions have a `this` inherited from the declaring scope**.
<details><summary> Show the game.js file </summary>
game.js - with function
=== "game.js - with function"
```javascript
export class GameComponent {
...
...
@@ -100,7 +98,7 @@ Waiting a certain amount of time can be easily done using the [`setTimeout()`](h
}
```
game.js - with arrow function
=== "game.js - with arrow function"
```javascript
export class GameComponent {
...
...
@@ -125,7 +123,7 @@ Waiting a certain amount of time can be easily done using the [`setTimeout()`](h
Concatenating strings is not something we enjoy in any language. Fortunately, _ES6_ comes with [**template literals**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) as an alternative:
=== "without template literals"
=== "Without template literals"
``` js
const welcome =
...
...
@@ -133,34 +131,13 @@ Concatenating strings is not something we enjoy in any language. Fortunately, _E