是否可以在Javascript中转发声明函数或方法?

时间:2011-11-12 20:04:27

标签: javascript jslint jshint

JSHint告诉我,如果在使用它们之前没有定义我的方法,则无法识别我的方法。

我可以尝试按顺序重新安排我的所有方法,但我希望有一种方法可以通过“转发声明”这些方法来避免警告。

我不太确定正确的名称是什么,但我希望解释器知道代码中存在这些函数。

此处提供完整报告 - http://www.jshint.com/reports/67008

由于

2 个答案:

答案 0 :(得分:4)

  

我希望解释器知道这些函数在代码中进一步存在。

解释器 知道这些函数存在于代码中的下方。代码应该运行没有问题。只有jshint不喜欢它。

按照您认为有用且有意义的顺序声明函数没有任何问题,例如,将相关函数声明为彼此接近是正常的(并且是有用的)。就个人而言,我发现在我的脚本顶部声明页面初始化类型函数很有帮助,即使它们不可避免地会调用稍后声明的其他函数。

如果您在代码中引入了某种“预先声明”,我会认为这会使您的代码更难以阅读和维护,因为很明显,您必须将预先声明与真实声明相匹配即使它们在代码中间隔很远。当你下周回来并更改你的功能时,你必须记住更新代码的两个部分。这意味着你更有可能引入不一致和错误。

所以,鉴于jshint的目的是使你的代码更多可靠,你肯定不想添加一些人工构造只是为了传递jshint,即使这会使代码 可靠?

你应该考虑避免这种警告的唯一重组是重新命令这些功能,但在我看来,你最好忽略这种情况下的警告。 (是否可以选择关闭警告?)

答案 1 :(得分:0)

我认为您所能做的就是设置undef:false,这会导致其他问题。

您可能需要忽略它,重构或运行它,并假设在调用它们的代码之前将加载包含这些函数的文件。