JSHint 告诉我,如果在使用之前未定义我的方法,则无法识别它们。
我可以尝试按顺序重新安排我的所有方法,但我希望有一种方法可以通过“前向声明”方法来避免警告。
我不太确定正确的名称是什么,但我希望解释器知道这些函数进一步存在于代码中。
完整报告在这里 - http://www.jshint.com/reports/67008
谢谢
JSHint 告诉我,如果在使用之前未定义我的方法,则无法识别它们。
我可以尝试按顺序重新安排我的所有方法,但我希望有一种方法可以通过“前向声明”方法来避免警告。
我不太确定正确的名称是什么,但我希望解释器知道这些函数进一步存在于代码中。
完整报告在这里 - http://www.jshint.com/reports/67008
谢谢
我希望解释器知道这些函数存在于代码中。
解释器确实知道这些函数存在于代码的更深处。代码应该可以正常运行。只有jshint不喜欢它。
按照您认为有用和有意义的顺序声明函数并没有错,例如,将相关函数声明在彼此附近是正常的(并且有帮助的)。就个人而言,我发现在我的脚本顶部声明页面初始化类型函数很有帮助,即使它们不可避免地会调用稍后声明的其他函数。
如果您在代码中引入某种“预先声明”,我认为这会使您的代码更难阅读和维护,因为显然您必须将预先声明与真实声明相匹配,即使它们将在代码中相隔很远。当你下周回来改变你的函数时,你必须记住更新代码的两个部分。这意味着您更有可能引入不一致和错误。
因此,鉴于 jshint 的目的是使您的代码更可靠,您肯定不想添加一些人为的构造来传递 jshint,即使从长远来看这会使代码的可靠性降低?
The only restructuring you should consider to avoid that warning is re-ordering the functions, but in my opinion you're better off ignoring the warning in this case. (Is there an option to turn the warning off?)
我认为您所能做的就是 set undef:false
,这会导致其他问题。
您可能需要忽略它、重组或运行它,假设包含函数的文件将在调用它们的代码之前加载。