在引用JavaScript父对象时,如何避免"变量可能尚未初始化"?

Cod*_*rer 5 javascript eclipse warnings

我知道有很多"如何避免这个警告"的问题,但看起来我的第一个特定于JavaScript.在这种情况下,我想在我自己的声明中引用我正在初始化的东西,如下所示:

var foo = new Foo({
  bar: new Bar({
    x: function(){
      doStuff(foo);
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

(如果这看起来很熟悉,也许你以前使用过ExtJS - 这就是他们大部分内容的构建方式.)

当我调用时foo.bar.x(),我想指回foo拥有bar调用函数(x)的Bar()的Foo ().这有效,但我的Eclipse警告我"foo可能尚未初始化",引用调用doStuff();- 因为,当引擎第一次看到该行时,我们还没有完成定义foo.当然,x()除非foo构造成功,否则无法调用,但我的风格检查器显然没有想到这一点.

所以我对如何处理这个问题感到很茫然.我应该忽略这个警告吗?有没有办法将它标记为这样,所以我不再收到警告了?我做错了吗?我应该以不同的方式传递我的参考吗?

Ray*_*nos 2

var Foo = function() { }

var Bar = function (obj) {
  // foo is not initialized
  obj.x();
  // called doStuff with undefined
}

var foo = new Foo({
  bar: new Bar({
    x: function(){
      doStuff(foo);
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

日食是对的。同样,如果您想要更好的分析系统,请考虑使用 WebStorm 3.0 或 Visual Studio 11 作为您的 JS IDE。