首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript代码分析

JavaScript代码分析
EN

Stack Overflow用户
提问于 2016-04-29 02:27:20
回答 1查看 48关注 0票数 0

有没有工具可以找到不在作用域内的方法?

代码语言:javascript
复制
function main(someValue)
{
    if(someValue)
    {
        function TestOne(){}
    }
    esle
    {
        function TestTwo(){}
        function TestThree(){}
    }
    //Call of function  
    TestTwo();
}

这里的TestTwo()可能是未定义的,因此希望从庞大的代码库中找到这样的函数。如果有任何工具可以检测,那么这将是快速帮助,应用程序是集成开发环境MVC和VS2010是集成开发环境。

EN

回答 1

Stack Overflow用户

发布于 2016-04-29 02:30:34

TestTwo是否定义取决于您的Javascript版本。它不依赖于if语句的true of false分支是否被跟随。

在ES6之前JavaScript中,这是依赖于实现的,一些浏览器将提升函数声明,因此它将在作用域中。其他人将抛出一个错误。

在现代的JavaScript中,它永远不会被定义,因为函数声明有块作用域,所以函数只在else块的作用域中。

解决方案是无条件地声明您的函数,但仍然在if语句块内根据需要调用它们:

代码语言:javascript
复制
function main(someValue)
{
    if(someValue)
    {
      ..
    }
    else
    {
      ..
    }
    //Call of function  
    TestTwo();

    function TestOne(){}
    function TestTwo(){}
    function TestThree(){}
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36922695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档