# Day 19 - Closures ## [Exercise:Solutions](#exercise-solutions) - ### [Exercise:Level 1](#exercises-level-1) - ### [Exercise:Level 2](#exercises-level-2) - ### [Exercise:Level 3](#exercises-level-3)
#### [Home](../README.md) | [<< Day 18](./18_day_promise.md) | [Day 20 >>](./20_day_cleanCode.md) ## Exercise Solutions ### Exercises: Level 1 1. Create a closure which has one inner function ```js // app.js function myFunction(){ let firstName ="Nevzat" let lastName = "Atalay" function innerFunction(){ return console.log(firstName,lastName) } return innerFunction } const innerFun = myFunction() innerFun() ``` ### Exercises: Level 2 1. Create a closure which has three inner functions ```js // app.js function myFunction(){ let a =5 let b = 7 function total(){ return a + b } function extraction(){ return a - b } function multiply(){ return a * b } return{ total:total(), extraction:extraction(), multiply:multiply() } } const innerFun = myFunction() console.log(innerFun.total) console.log(innerFun.extraction) console.log(innerFun.multiply) ``` ### Exercises: Level 3 1. Create a personAccount out function. It has firstname, lastname, incomes, expenses inner variables. It has totalIncome, totalExpense, accountInfo,addIncome, addExpense and accountBalance inner functions. Incomes is a set of incomes and its description and expenses is also a set of expenses and its description. #### [Home](../README.md) | [<< Day 18](./18_day_promise.md) | [Day 20 >>](./20_day_cleanCode.md)