Пилю лукап для экспериментального прототипного языка.
Лукап планирую реализовать следующим образом. В каждом объекте есть массивы storage и protos и метод get, вида get(key)
. Если key не обнаруживается в storage, начинают перебираться все объекты ссылки на которые находятся в protos, у каждого объекта вызывается тот же самый метод get c запрошенным ключом, до тех пор, пока ключ не будет найден.
Возник вопрос. Что если в protos или в каком нибудь объекте из protos будет ссылка на тот же самый объект, из которого изначально вызывался get? Похоже на то, что будет зацикливание. Как лучше обработать данный случай? Просто пропускать такие объекты? Какие тут могут быть неожиданности?
Еще, я не совсем пока понял, насколько это концептуально чисто — позволять объекту наследовать самому от себя. Пока склоняюсь к тому, что это нормально.