-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfunctions.js
More file actions
47 lines (36 loc) · 1.74 KB
/
functions.js
File metadata and controls
47 lines (36 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// ==== Callbacks ====
/* Step 1: Create a function that accepts a callback
* Create a function named consume that can take 3 parameters.
* The first two parameteres can accept any argument
* The last parameter accepts a callback
* In the body of the function return the callback with the two parameters that you created
*/
const consume = (param1, param2, callback) => {
return callback(param1, param2);
}
/* Step 2: Create several functions to callback with consume();
* Create a function named add that returns the sum of two numbers
* Create a function named multiply that returns the product of two numbers
* Create a function named greeting that accepts a first and last name and returns "Hello first-name last-name, nice to meet you!"
*/
const add = (x, y) => x + y;
const multiply = (x, y) => x * y;
const greeting = (first, last) => `Hello ${first} ${last}, nice to meet you!`
/* Step 3: Check your work by uncommenting the following calls to consume(): */
//consume(2,2,add); // 4
// consume(10,16,multiply); // 160
// consume("Mary","Poppins", greeting); // Hello Mary Poppins, nice to meet you!
// ==== Closures ====
// Explain in your own words why `nestedfunction()` can access the variable `internal`.
// Explanation:
// Because it is within the function scope, which the inner function has access to via the scope chain. More or less it's an encapsulation of data that is accesible and then readmissible to the original context from which it was referred, potentially in a transformative way.
const external = "I'm outside the function";
function myFunction() {
console.log(external);
const internal = "Hello! I'm inside myFunction!";
function nestedFunction() {
console.log(internal);
};
nestedFunction();
}
myFunction();