Хм, а если делать вот так:
function Test() {
this.str = 'test';
}
Test.prototype = {
fn1: function() {
alert(this.str);
},
fn: {
self: function(obj) {
return obj;
}(this),
fn2: function() {
alert(this.self.str);
}
}
};
new Test().fn.fn2();
Только в self теперь записывается ссылка на window