Digamos que tengo una función de fábrica createFunction() con una variable entera y un objeto de matriz.
function createFunction() { let a = 5; let arr = []; function updateA (value) { a = value; } function getA () { return a; } function updateArr(value){ arr.push(value); } return {a, updateA, getA, arr, updateArr}; } Después de actualizar a y arr , intento acceder a ellos.
const myFunction = createFunction(); myFunction.updateA(11); console.log(myFunction.a); // prints 5 console.log(myFunction.getA()); // prints 11 myFunction.updateArr(33); console.log(myFunction.arr); //prints [33] Estoy confundido por qué se puede acceder directamente a la matriz actualizada con myFunction.arr mientras que no se puede acceder a la variable a con myFunction.a . Ambos están expuestos a través del retorno en createFunction(), por lo que asumo que tienen el mismo alcance. ¿Por qué solo se puede acceder al valor actualizado de a usando un método getter?