Не в той конструкции, которая у вас есть, нет.
Основная причина в том, что outer
на самом деле еще не существует, когда вы находитесь внутри inner
.
Если вы изменилисьсвойства inner
функций, к которым вы могли бы обращаться outer
во время выполнения, но это был бы довольно уродливый код.
Попробуйте вместо этого использовать new outer();
и построить объект таким образом, тогда вы можете использовать this
внутри inner
, но тогда это совершенно другая конструкция и будет выглядеть примерно так:
var outer = function() {
this.x = 0;
this.inner = {
a: this.x + 1
};
};
var b = new outer();
console.log(b.inner.a); // 1