Добавить метод объекту JS
В данном уроке мы изучим 4 способа добавить новый метод к объекту.
Пусть для примера у нас есть следующий
объект с юзером:
let obj = {
name: 'john',
surn: 'smit',
};
Давайте добавим новый метод к этому объекту с помощью различных способов.
Способ 1. Напрямую
Можно добавить метод сразу при объявлении объекта:
let obj = {
name: 'john',
surn: 'smit',
full: function() {
return this.name + ' ' + this.surn;
}
};
Вызовем наш метод:
console.log(obj.full()); // выведет 'john smit'
Способ 2. После объявления
Можно добавить метод после объявления объекта. Давайте сначала объявим объект:
let obj = {
name: 'john',
surn: 'smit',
full: function() {
return this.name + ' ' + this.surn;
}
};
А теперь добавим новый метод:
let obj.full = function() {
return this.name + ' ' + this.surn;
};
Вызовем наш метод:
console.log(obj.full()); // выведет 'john smit'
Способ 3. Через Object.defineProperty
Метод Object.defineProperty также
позволяет добавить новый метод к объекту.
Сделаем это:
Object.defineProperty(obj, 'full', {
get: function() {
return this.name + ' ' + this.surn;
}
});
Вызовем наш метод:
console.log(obj.full()); // выведет 'john smit'
Способ 4. Через Object.assign
Метод Object.assign
позволяет нам объединить несколько объектов
в один. Мы можем использовать его для
добавления методов в существующий объект.
Давайте посмотрим на практике. Пусть у нас
есть следующий объект:
let obj = {
name: 'john',
surn: 'smit',
};
Пусть у нас также есть функция:
function full() {
return this.name + ' ' + this.surn;
}
Объединим вместе наш объект и новый объект с нашей функцией:
obj = Object.assign({}, obj, {full: full});
Либо можно воспользоваться анонимной функцией:
obj = Object.assign({}, obj, {full: function() {
return this.name + ' ' + this.surn;
}});
Вызовем наш метод:
console.log(obj.full()); // выведет 'john smit'