I am getting error when trying to get the keys of the object and all the objects of prototype objects, if present. It gives me an type error when trying to access keys of prototype. Whats wrong This works -
Object.keys(object)
Object.keys(Object.getOwnPropertyDescriptors(object.__proto__)),
let obj = { "tester": 10 };
let ko = Reflect.ownKeys(obj);
let kp = Reflect.ownKeys(obj.prototype); // Error TypeError: Reflect.ownKeys called on non-object
let kp = Reflect.ownKeys(obj.__proto__); // Error TypeError: Reflect.ownKeys called on non-object
Object.setPrototypeOf(obj.prototype, null); // Error
Object.freeze(obj.prototype); // Error
Object.freeze(obj);
let obj = { "tester": 10 };
let ko = Reflect.ownKeys(obj);
let kp = Reflect.ownKeys(obj.prototype); // Error TypeError: Reflect.ownKeys called on non-object
let oko = Object.keys(obj.__proto__); // Error TypeError: Reflect.ownKeys called on non-object
let okp = Object.keys(obj.prototype); // Error TypeError: Reflect.ownKeys called on non-object
let doko = Object.keys(Object.getOwnPropertyDescriptors(obj.__proto__));
let dokp = Object.keys(Object.getOwnPropertyDescriptors(obj.prototype)); // Error TypeError: Cannot convert undefined or null to object
Object.setPrototypeOf(obj.prototype, null); // TypeError: Object.setPrototypeOf called on null or undefined
Object.freeze(obj.prototype); // TypeError: Object.setPrototypeOf called on null or undefined
Object.freeze(obj);
Error is TypeError: Reflect.ownKeys called on non-object
TypeError: Reflect.ownKeys called on non-object
at Reflect.ownKeys (<anonymous>)
at copyProps (C:\Users\ganes\OneDrive\Documents\projects\freezeobject\index.js:68:29)
at Object.makeSafe (C:\Users\ganes\OneDrive\Documents\projects\freezeobject\index.js:139:3)
at Object.<anonymous> (C:\Users\ganes\OneDrive\Documents\projects\freezeobject\demos\demos.freezeobject.js:25:20)
at Module._compile (node:internal/modules/cjs/loader:1378:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1437:10)
at Module.load (node:internal/modules/cjs/loader:1212:32)
at Module._load (node:internal/modules/cjs/loader:1028:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:142:12)
at node:internal/main/run_main_module:28:49
Use
Object.getPrototypeOf()to access an object's prototype:__proto__should work too but depricated:prototypeis a property of a function/class to assign as__proto__tothiswith the function/class used as a constructor withnewAnd yes, you cannot freeze or set a prototype of
undefined:And yes,
.prototype!==__proto__: