Страницы

Поиск по вопросам

воскресенье, 9 июня 2019 г.

Как создать конструктор внутри объекта?

Существует объект который содержит объекты . В этом объекте есть метод который является конструктором при вызове которого просто добавляет еще объект.
var obj = { list1:{petName:'Gyffy', petOwner:'Peter', date: '2016-05-03', time: '14:23', note:'sfdsfsdfdsf'}, list2:{petName:'Catty', petOwner:'Oleg', date: '2017-05-03', time: '16:23', note:'xcxzcxcxc'}, addObj: function(petName,petOwner,date,time,note){ this.petName = petName, this.petOwner = petOwner, this.date = date, this.time = time, this.note = note } } obj.addObj('Kitty','Max','2014-06-03','14:34','bla bla');
В результате этого "кода") создаются свойства текущего объекта.
{list1: {…}, list2: {…}, addObj: ƒ, petName: "Kitty", petOwner: "Max", …} addObj : ƒ (petName,petOwner,date,time,note) date : "2014-06-03" list1 : {petName: "Gyffy", petOwner: "Peter", date: "2016-05-03", time: "14:23", note: "sfdsfsdfdsf"} list2 : {petName: "Catty", petOwner: "Oleg", date: "2017-05-03", time: "16:23", note: "xcxzcxcxc"} list3 : {petName: "dsfdsf", petOwner: "Olga", date: "2018-12-06", time: "13:23", note: "dsfsd"} note : "bla bla" petName : "Kitty" petOwner : "Max" time : "14:34" __proto__ : Object
Как мне реализовать вызов конструктора и создать новый объект в obj


Ответ

var obj = { list1: { petName: 'Gyffy', petOwner: 'Peter', date: '2016-05-03', time: '14:23', note: 'sfdsfsdfdsf' }, list2: { petName: 'Catty', petOwner: 'Oleg', date: '2017-05-03', time: '16:23', note: 'xcxzcxcxc' }, addObj: function(petName, petOwner, date, time, note) { for (var i = 1; ; i++) { if (!this["list" + i]) { this["list" + i] = { petName: petName, petOwner: petOwner, date: date, time: time, note: note }; break; } } } } obj.addObj('Kitty', 'Max', '2014-06-03', '14:34', 'bla bla'); console.log(obj);

Комментариев нет:

Отправить комментарий