我知道有很多关于如何避免警告的问题,但是看起来我的问题是第一个特定于JavaScript的。在这种情况下,我想要在声明中引用我正在初始化的东西,就像这样:
var foo = new Foo({
bar: new Bar({
x: function(){
doStuff(foo);
}
});
});
如果这看起来很熟悉,也许您以前使用过 ExtJS - 大多数内容都是如此构建的。
当我调用 foo.bar.x()
时,我想指向拥有 Bar (bar
) 并调用函数 (x
) 的 Foo (foo
)。这可以工作,但我的 Eclipse 警告说“foo 可能未被初始化”,引用对 doStuff();
的调用 - 因为当引擎首次查看该行时,我们还没有完成定义foo
。当然,除非成功构建了 foo
,否则无法调用 x()
,但我的样式检查器显然尚未解决这个问题。
所以我不知道应该如何处理这个问题。我应该忽略这个警告吗?有没有办法将其标记为这样,这样我就不会再收到警告了?我做错了吗?我应该以不同的方式传递我的引用吗?
doStuff(foo)
而不是doStuff(f)
。 - Duncan Smart