Tengo un programa en el que deseo evitar que alguien acceda al objeto String o cualquiera de sus prototipos y parece que no puedo encontrar cómo hacerlo.
Object.seal , Object.freeze y ambos obviamente no funcionan (ya que no le impiden acceder a las propiedades ya presentes, por lo que me siento un poco perdido sobre cómo hacerlo. Intenté buscarlo en Internet pero después de la mitad una hora, todo lo que tengo es una forma diferente de acceder a las propiedades y 3 formas de agregar cosas nuevas y bloquear, pero 0 formas de hacer que sea inaccesible
Intenté delete también, pero ese era...
Puede usar un símbolo como clave y almacenar su objeto en ese objeto. Por lo tanto, será accesible solo en el alcance que definió el símbolo.
function addPrivateKey(a, value) { let sym1 = Symbol() a[sym1] = value console.log(a) console.log(a[sym1]) } let a = {}; addPrivateKey(a, 2) console.log(Object.keys(a))Defina un ámbito privado y almacene sus claves allí. ¡Los valores son accesibles solo con sus sugerencias!
class PrivateScope { glob = {}; #keyToSym = {}; counter = 0; get(hint) { return this.glob[this.#keyToSym[hint]] } set(value) { let sym1 = Symbol() this.glob[sym1] = value this.#keyToSym[this.counter] = sym1; return this.counter ++; } } const myPrivateScope = new PrivateScope(); let hint = myPrivateScope.set(2) console.log( myPrivateScope.get(hint) ) console.log(myPrivateScope.glob)