2014-06-07 47 views
0

我现在有一些代码,看起来像这样:js函数是否在模块外可访问的模块中定义?

// when the document is ready 
    execute myFunction(); 

    (function($){ 
     function myFunction() 
     { 
     // code 
     }; 
    })(jQuery); 

控制台是说没有定义myFunction的......为什么呢?

+0

取决于所使用的各种模块的模式,以及是否导出。在你的情况下,它显然不是。 – Bergi

+0

*“控制台说myFunction没有被定义......为什么?”*因为JavaScript具有词汇范围。 'myFunction'是在另一个函数内定义的,因此不能在该函数之外访问。 –

回答

1

这是不可访问的,因为你已经把你的函数放在另一个自我调用函数中,并且它的调用超出了它的范围。

您的评论指出您希望呼叫myFunction()在加载时发生,如果您当前的代码有效,则不会如此。它会在DOMReady之前调用该函数。

为了得到你想要的行为,将SIF中的函数调用:

(function($){ 
    myFunction(); 

    function myFunction() { 
     // code 
    }; 
})(jQuery); 
相关问题