Как избежать "переменная, возможно, не была инициализирована" при ссылке на родительский объект JavaScript?

Я знаю, что есть много вопросов "как мне избежать этого предупреждения", но похоже, что мой первый специфичен для JavaScript. В этом случае я хочу ссылаться на инициализируемую вещь внутри ее собственного объявления, например, так:

var foo = new Foo({
  bar: new Bar({
    x: function(){
      doStuff(foo);
    }
  });
});

(Если это выглядит знакомо, возможно, вы уже использовали ExtJS - именно так построено большинство их вещей. )

Когда я вызываю foo.bar.x(), я хочу указать обратно на Foo (foo), которому принадлежит Bar (bar), вызывающий функцию (x). Это работает, но мой Eclipse предупреждает меня, что "foo, возможно, не был инициализирован", ссылаясь на вызов doStuff(); - потому что, когда движок впервые видит эту строку, мы еще не закончили определение foo. Конечно, x() не может быть вызван, пока foo не будет успешно сконструирован, но моя программа проверки стиля, видимо, этого не поняла.

Поэтому я в растерянности, как с этим быть. Должен ли я игнорировать предупреждение? Есть ли способ пометить его как таковое, чтобы больше не получать предупреждение? Я делаю это неправильно? Должен ли я передать ссылку другим способом?

5
задан Coderer 27 October 2011 в 22:05
поделиться