4 min read
•Question 37 of 50mediumWhat are common Object methods in JavaScript?
Understanding Object static methods.
What You'll Learn
- Object.keys/values/entries
- Object.assign and freeze
- Object.create and getOwnPropertyDescriptor
Getting Keys, Values, Entries
code.jsJavaScript
const person = { name: 'John', age: 30 };
Object.keys(person); // ['name', 'age']
Object.values(person); // ['John', 30]
Object.entries(person); // [['name', 'John'], ['age', 30]]
// Iteration
for (const [key, value] of Object.entries(person)) {
console.log(`${key}: ${value}`);
}Object.assign
code.jsJavaScript
const target = { a: 1 };
const source = { b: 2, c: 3 };
Object.assign(target, source);
// target is now { a: 1, b: 2, c: 3 }
// Clone (shallow)
const clone = Object.assign({}, original);
// Merge multiple
const merged = Object.assign({}, obj1, obj2, obj3);Object.freeze / Object.seal
code.jsJavaScript
// freeze - no changes at all
const frozen = Object.freeze({ a: 1 });
frozen.a = 2; // Silently fails (or error in strict mode)
frozen.b = 3; // Silently fails
// seal - can modify existing, can't add/delete
const sealed = Object.seal({ a: 1 });
sealed.a = 2; // Works
sealed.b = 3; // Fails
Object.isFrozen(frozen); // true
Object.isSealed(sealed); // trueObject.create
code.jsJavaScript
// Create with prototype
const proto = {
greet() { return `Hello, ${this.name}`; }
};
const obj = Object.create(proto);
obj.name = 'John';
obj.greet(); // 'Hello, John'Property Descriptors
code.jsJavaScript
Object.defineProperty(obj, 'readOnly', {
value: 'constant',
writable: false,
enumerable: true,
configurable: false
});