myFunction.init()是“不是函数”-如何启动jQuery代码?

| 我找不到启动脚本的正确方法。我有几个变量,因此该函数在文档准备就绪时会调用变量myFunction和loadIMG等,并在代码结尾处调用myFunction.init(),但是Firebug告诉我\“ myFunction.init ()不是函数\“。我如何以正确的方式启动它? 谢谢你的帮助 :
$(function () {  
    //...  
    var myFunction = (function() {   
        var init = function() {  
            loadIMG();     
        },  
        loadIMG = function() {  
            etc.  
        //...  
        //then at the end of the page :  
    })(); /* myFunction */  
    myFunction.init();  
});
    
已邀请:
如果要将ѭ1视为构造函数,则需要执行以下两项操作之一。 返回具有所需方法的对象。
var myFunction = (function() {   
    var init = function() {  
        loadIMG();     
    },  
    loadIMG = function() {  
        etc.  
    //...  
    return {
        \"init\": init
    };
})();
实际上是构造函数并使用
new
关键字。在public4 /上分配任何公共方法/变量作为属性。
var myFunction = new (function() {   
    this.init = function() {  
        loadIMG();     
    };
    var loadIMG = function() {  
        etc.  
    //...
})();
    
您正在评估匿名函数,因为您正在编写
(function () {})()
而不仅仅是
function () {}
,这是一个错误吗?如果不是,匿名函数是否返回新函数?检查
typeof myFunction
,看是否确实是
\"function\"
    
您正在尝试在函数的可见范围之外访问函数。由于您已经在$(function(){})中声明了myFunction变量,因此仅在该范围内可见。 如果要在尝试访问它的位置进行访问,则需要在函数之外声明myFunction,例如:
var myFunction;
$(function () {
    //...
    myFunction = (function() {
...
然后,您可以在脚本中的任何位置引用myFunction。     

要回复问题请先登录注册