Тези функции, от които се нуждаете в обичайния си програмен живот

Object.create():Този метод създава нов обект с посочения прототип. Новосъздаденият обект ще наследи всички свойства на неговия прототипен обект. В новия обект това също е възможно да се добавят нови свойства. Всъщност всички общи свойства, дефинирани в основния обект (прототип). Тогава неговите общи свойства наследяват новия клас.

Синтаксис: Object.create(prototype)

Ex:

const car = {
wheel: 4,
door: 4,
brand: ‘’
}
const bmw = Object.create(car);
bmw.brand = ‘BMW’;
bmw.color = ‘Blue’;
console.log(bmw.wheel);
// result : 4
console.log(bmw.brand);
// result: BMW

Ако създам няколко обекта, всеки обект наследява свойството „колело“, „врата“, „марка“. Тези свойства са общата характеристика на автомобила. Ето защо прототипният обект има тези общи характеристики за всички нови обекти. В нов обект не е необходимо да дефинирате тези свойства отново и отново.

Object.assign():Този метод се използва за копиране на един или повече изходни обекти в целеви обект. Той приема два параметъра на обекта, целевия обект и обекта източник. Източникът ще бъде копиран в целевия обект. Ако целевият обект и обектът източник имат един и същ ключ, тогава целевият обект ще бъде заменен от обект източник. Целевият обект ще бъде променен.

Синтаксис: Object.assign(target,source)

Ex:

const target = {a:2,b:4,c:8}
const source = {c:10,d:12,e:14}
const newTarget = Object.assign(target,source);
console.log(target);
console.log(newTarget);

Забележка: ако целевият обект не може да се изброи, не е възможно да се промени целевият обект.

Object.freeze():Този метод замразява обект и обектът не може да бъде променен, модифициран, предотвратява добавянето на ново свойство или премахването на съществуващото. Предотвратява промяната на изброимостта, конфигурируемостта. Стойностите на съществуващите свойства не могат да се променят. Ако се опитаме да присвоим отново стойността на съществуващото свойство, то ще върне стойността на прототипа. Така че, ако имаме нужда някой обект да бъде непроменим, тогава можем да използваме метода freeze().

Синтаксис: Object.freeze(obj)

const obj = {
name: ‘Shrikanta’,
age: 24,
}
console.log(obj);
// Result: { name: ‘Shrikanta’, age: 24 }
Object.freeze(obj);
obj.name = “Jewel”;
console.log(obj);
// Result: { name: ‘Shrikanta’, age: 24 }
// See the result is unchangeble

NB: Връща същия обект, който е бил предаден във функцията. Не създава ново копие.

Object.keys():Този метод се използва за получаване на ключовете на обект.Връща масив от низове, които представляват всички изброими свойства на дадения обект. Той приема параметър като аргумент. Ако не подаде никакъв аргумент, ще върне празен масив

Синтаксис: Object.keys(obj)

const obj = { name: ‘Shrikanta’, age: 24 }
console.log(Object.keys(obj));
// result: [ ‘name’, ‘age’ ]

Object.seal():Този метод предотвратява добавянето или изтриването на ново свойство в обекта. Той също така прави съществуващите свойства неконфигурируеми. Но стойността на съществуващите свойства може да бъде променена, ако могат да се записват. Не засяга никакво наследено имущество. Този метод се нуждае от един обектен параметър за преминаване и връща запечатан обект.

Синтаксис: Object.seal(obj)

Ex:

const obj = {
name: ‘Shrikanta’,
age: 24,
}
Object.seal(obj);
console.log(obj.name);
obj.name = “Jewel”;
console.log(obj.name);
// Existing property value can change
obj.hobby = ‘Gardening’;
console.log(obj.hobby);
// Result is: undefined. Because this obj is sealed. So adding or deletion is not possible

Object.values():Този метод се използва за получаване на стойностите на обект.Връща масив от стойностите на свойствата на даден обект. Той приема параметър като аргумент. Ако не подадете никакъв аргумент, това ще изведе грешка.

Синтаксис: Object.values(obj)

Ex:

const obj = { name: ‘Shrikanta’, age: 24 }
console.log(Object.values(obj));
// result: [ ‘Shrikanta’, 24 ]