Dominar los enlaces de JavaScript: comprensión y uso de esta potente función | Por Manish Salunke | enero, 2023

Convertirse en un experto en vinculación de JavaScript: una guía paso a paso

Cierre de JavaScript
El autor de la foto Cristina Gottardi acerca de Abrelo

¿Quién soy?

Mi nombre Manish Salunketengo 12 años de experiencia Desarrollador JavaScript, y tengo un conocimiento profundo del idioma y su ecosistema. Familiaridad con varios patrones de diseño de JavaScript y mejores prácticas y la capacidad de escribir código limpio, fácil de mantener y eficiente. Además, al estar familiarizado con varios marcos y bibliotecas de JavaScript, puedo reaccionar rápidamente a las nuevas tecnologías. Tengo experiencia trabajando con JavaScript tanto front-end como back-end, así como integración con otros lenguajes y tecnologías. También tiene experiencia probando y depurando código JavaScript, por lo que puede detectar y resolver problemas de manera efectiva.

Una función de cierre de JavaScript que tiene acceso a las variables en el ámbito principal incluso después de que la función principal haya regresado. Los enlaces se crean cuando una función interna hace referencia a variables desde su función contenedora (externa).

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

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

return innerFunction;
}

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

Los ejemplos de uso común de los cierres de JavaScript incluyen la creación de variables y métodos privados. Declarar una variable dentro de una función y devolver un cierre que pueda acceder efectivamente a esa variable crea una variable privada a la que solo se puede acceder a través del cierre.

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

Una función proporciona variables que están en el ámbito en el momento en que se define la función y el ámbito que ocupa la función.

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

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

return innerFunction;
}

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

No hay una forma directa de decir “claro” en JavaScript. Pero hay varias formas de “limpiar” de manera efectiva el enlace de JavaScript rompiendo las referencias que lo mantienen vivo.

Una de las principales ventajas de JavaScript Closures es la capacidad de crear variables y métodos privados. Conserva el estado del objeto y evita que el código externo cambie el estado interno del objeto.

Aquí hay algunos ejemplos más de cierre de JavaScript:

Un cierre de JavaScript que contiene una variable privada:

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

El resultado

El enlace de JavaScript es una característica poderosa que lo ayuda a escribir código más conservador y eficiente. Los cierres le permiten crear variables y métodos privados, almacenar el estado del objeto en múltiples llamadas a funciones y exponer las API públicas mientras mantiene la privacidad de los detalles de implementación. . Comprender cómo funcionan los enlaces y cómo usarlos de manera efectiva es una habilidad esencial para cualquier desarrollador de JavaScript.

Leave a Reply

Your email address will not be published. Required fields are marked *