1. Если я правильно понял, то это
function constructor() {
if (this.constructor) {
this.constructor.apply(this, arguments);
}
}
правильней написать так
function constructor() {
if (this.$constructor) this.$constructor.apply(this, arguments);
if (this.constructor) this.constructor.apply(this, arguments);
}
2. Как быть, если потребуются уникальные функции для экземпляра, а не из прототипа?
3. Если уж так писать циклы, обертки и т.п. то можно и миксыны сделать
4. Нет той гибкости, кот. есть при использовании ссылки на СуперКласс (на мой взгляд)
5. Кроме того, стороннему разработчику придется разбираться в твоей капусте