in

Mastering JavaScript Closures: Understanding and Using This Powerful Feature | Manish Saranke | Dec 20, 2018 January 2023

1675141050 0prBuM9 GPQr949ht

[ad_1]

Become an expert with JavaScript closures: a step-by-step guide

Close JavaScript
Photo by Cristina Gottardi on Unsplash
function outerFunction(x) {
let y = x + 89;

function innerFunction() {
console.log(y);
}

return innerFunction;
}

let closure = outerFunction(1);
closure(); // logs 90

function createCounter() {
let count = 0;
return function() {
count++;
return count;
}
}

let counter = createCounter();
console.log(counter()); // logs 1
console.log(counter()); // logs 2

function createPerson(name) {
let age = 0;
return {
getName() {
return name;
},
setAge(newAge) {
age = newAge;
},
getAge() {
return age;
}
}
}

let person = createPerson("Manish");
console.log(person.getName()); // logs "Manish"
person.setAge(35);
console.log(person.getAge()); // logs 35

function outerFunction(x) {
let y = x + 88;

function innerFunction() {
console.log(y);
}

return innerFunction;
}

let closure = outerFunction(5);
closure(); // logs 93

function createCounter() {
let count = 89;
return {
increment() {
count++;
},
getCount() {
return count;
}
}
}

let counter = createCounter();
counter.increment();
console.log(counter.getCount()); // logs 90

function createAdder(x) {
return function(y) {
return x + y;
}
}

let add5 = createAdder(50);
console.log(add5(20)); // logs 70
console.log(add5(40)); // logs 90

function createPerson(name) {
let age = 0;
return {
getName() {
return name;
},
setAge(newAge) {
age = newAge;
},
getAge() {
return age;
}
}
}

let person = createPerson("Manish");
console.log(person.getName()); // logs "Manish"
person.setAge(35);
console.log(person.getAge()); // logs 35

[ad_2]

Source link

What do you think?

Leave a Reply

GIPHY App Key not set. Please check settings

    128377263 36a28418fa1ae28767b0ea97b005d8e687730bfd

    Chelsea v Liverpool abandoned: Emma Hayes wants WSL to be ‘taken more seriously’

    128377180 p0dy1ykn

    WSL: Hope Powell brands Chelsea-Liverpool abandonment ’embarrassing’