Добрый день, интересует такой вопрос: возможно ли через метод прототипа получить доступ ко всем объектам которые его наследуют?
Например мы хотим получить все наследующие объекты в один массив:
var Question = function(question, answers, correct){
this.question = question
this.answers = answers
this.correct = correct
}
Question.prototype.getAllQuestion = function() {
//магия
}
var q1 = new Question('Вы славянский шкаф продаете?', ['Таки да', 'А Вы таки кто такой будете?','Канэшна радной прадаем','Тебе надо ты и купи слона'], 3)
var q2 = new Question('Купи слона?',['А слона нет','Нет, брат, с таким настроем ты слона не продашь', 'А я возьму и куплю'], 2)
var q3 = new Question('Почему булочки для хот-догов продают по 8 штук, а сосиски по 10 штук в упаковке?',['ом-ом-ом','Ой всё'], 0)
var all = q1.getAllQuestion() // ['q1','q2','q3']
В конструкторе можно запоминать все созданные объекты в статический массив и по запросу возвращать их. Подход рабочий, но из существенных минусов нужно отметить неспособность сборщика мусора автоматически удалить такие объекты, поскольку на них всегда будет ссылка в нашем массиве.
var Question = function(question, answers, correct){
Question._objects.push(this) // запоминаем только что созданный объект
this.question = question
this.answers = answers
this.correct = correct
}
Question.prototype.getAllQuestion = function() {
return Question._objects
}
Question._objects = [] // создаём приватное статическое поле
var q1 = new Question('Вы славянский шкаф продаете?', ['Таки да', 'А Вы таки кто такой будете?','Канэшна радной прадаем','Тебе надо ты и купи слона'], 3)
var q2 = new Question('Купи слона?',['А слона нет','Нет, брат, с таким настроем ты слона не продашь', 'А я возьму и куплю'], 2)
var q3 = new Question('Почему булочки для хот-догов продают по 8 штук, а сосиски по 10 штук в упаковке?',['ом-ом-ом','Ой всё'], 0)
var all = q1.getAllQuestion() // ['q1','q2','q3']
console.log(all)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Начинаю учить JSМожно ли как-то <li> добавить тег <div>? Например: li
На html странице есть таблица, хранящая заказ клиентаКроме того, клиент вводит в форму свои данные