JS / Call函数,在其他函数中定义

时间:2013-04-27 10:21:11

标签: javascript

我在JS中有下一个:

function doC() {
    this.try = document.getElementById("try");


function tryC(){

       //do something
    }
}

现在,我想调用tryC函数,所以我写了下一个:

<script type="text/javascript" src="myFile.js"></script>
<script type="text/javascript">tryC();</script>

但正如我所见,没有任何事情发生。我打电话给tryC()

2 个答案:

答案 0 :(得分:3)

您已在C的范围内定义了doC。它不能在doC之外访问。

如果您希望全局访问它,则必须明确地为其分配全局。

window.C = function () { /* etc */ };

创建全局变量通常是一个坏主意,当它们不是在加载时创建时更是如此。有可能有更好的方法来解决你试图解决的问题。

答案 1 :(得分:1)

你的tryC是在doC中定义的,它没有暴露(它是私有的),你可以这样做:

   function doC() {
        this.try = document.getElementById("try"); 

        return function(){
           alert('Try C');
        }
    }

    doC()(); // alerts

function doC() {
    this.try = document.getElementById("try"); 

    return {
        tryC : function(){
                  alert('Try C');
               }
    }
}

doc().tryC(); //alerts

或者你的方式(全局的全局)

    function doC() {
            this.try = document.getElementById("try"); 

            this.tryC = function(){
               alert('Try C');
            }
    }

doC(); // call first!
tryC(); // alerts