0

我在 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()

4

2 回答 2

3

您已CdoC. 它在doC.

如果您希望它可以全局访问,那么您必须显式为其分配一个全局变量。

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

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

于 2013-04-27T10:27:24.383 回答
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
于 2013-04-27T10:36:17.070 回答