В сложном приложении сложные навороты ) Вообще говоря, это попытка перенести одну из реализаций паттерна MVC с AS3 на JS. Но в AS3 нету фишки с переопределением this.
Проявляется это в том, что в console.log(this) - ViewA. Вот, например, простой скрипт, без привязки к jQuery, на котором это проявится.
В консоли Firefox'а (Firebug) будет <div id="view-a">.
При тестировании обнаружилось, что в Chrome на this выводится ViewB, а id все равно равно "view-a".
var View = function()
{
}
View.prototype = document.createElement('div');
View.prototype.parent = {};
View.prototype.constructor = View;
var ViewA = function()
{
//Опознавательный знак
this.setAttribute('id', 'view-a');
this.parent.constructor.call(this);
}
ViewA.prototype = new View();
ViewA.prototype.parent = new View();
ViewA.prototype.constructor = ViewA;
ViewA.prototype._viewBInstance = null;
ViewA.prototype.setBInstance = function()
{
this._viewBInstance = new ViewB();
}
var ViewB = function()
{
//Проверка this
console.log(this);
console.log(this.id);
this.parent.constructor.call(this);
}
ViewB.prototype = new View();
ViewB.prototype.parent = new View();
ViewB.prototype.constructor = ViewB;
//Собственно, проверка
var va = new ViewA();
va.setBInstance();