Tengo 2 preguntas aquí: -
Por qué obj2 = 5; no esta tirando el error?
Si deseo lanzar durante la asignación obj2 = 5; ¿Qué tengo que hacer? Teniendo en cuenta que obj2 es var o let.
"use strict" function deepFreeze(object) { // Retrieve the property names defined on object const propNames = Object.getOwnPropertyNames(object); // Freeze properties before freezing self for (const name of propNames) { const value = object[name]; if (value && typeof value === "object") { deepFreeze(value); } } return Object.freeze(object); } let obj2 = { internal: { a: null } }; deepFreeze(obj2); // obj2.internal.a = 'anotherValue'; // fails silently in non-strict mode // obj2.internal.a; // null obj2 = 5; // I want to throw error in this case but it is not throwing error.