Добрый день, интересует такой вопрос: возможно ли через метод прототипа получить доступ ко всем объектам которые его наследуют?
Например мы хотим получить все наследующие объекты в один массив:
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)
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости