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