gpt4 book ai didi

javascript - 引用 JavaScript 父对象时如何避免 "variable may not have been initialized"?

转载 作者:搜寻专家 更新时间:2023-11-01 04:27:12 25 4
gpt4 key购买 nike

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

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

(如果这看起来很眼熟,也许您以前使用过 ExtJS —— 他们的大部分内容都是这样构建的。)

当我调用 foo.bar.x() 时,我想指向拥有 Bar (bar) 调用函数 (x)。这有效,但我的 Eclipse 警告我“foo 可能尚未初始化”,引用对 doStuff(); 的调用——因为,当引擎第一次看到该行时,我们还没有完成尚未定义 foo。当然,除非成功构造了 foo,否则无法调用 x(),但我的样式检查器显然还没有弄清楚这一点。

所以我不知道如何处理这个问题。我应该忽略警告吗?有没有办法将其标记为这样,这样我就不会再收到警告了?我做错了吗?我应该以不同的方式传递我的引用资料吗?

最佳答案

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);
}
});
});

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

关于javascript - 引用 JavaScript 父对象时如何避免 "variable may not have been initialized"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com