1

我有这个问题,我有 2 个文件 1) 包含 main() 和其他与 main() 内的主 UI 相关的东西,还有一些函数 2) 另一个文件,它使从服务器到 UI 的连接

我无法从辅助文件中找到从 main() 调用函数的任何解决方案(我知道这不是一个很好的编程设计,但我已经写了很多代码)

谢谢:)

4

1 回答 1

1

在 js 中,functions 是你的范围约束。因此,请考虑以下代码:

function main(){
    function callMom(){
        alert('hi mom!');
    }
}

function goAboutYourDay(){
    brushTeeth(); // works
    callMom(); // wont work
}

function brushTeeth(){
    alert('brush brush brush');
}

鉴于您的情况,您可能会考虑返回一些 main 函数,如下所示:

function main(){
    var callMom = function(){ 
        alert('hi mom!');
    }

    return {
        callMommy: callMom
    };
}

function goAboutYourDay(){
    var m = main();
    m.callMommy(); 
}

以下是使用原型的方法:

var Main = function(){
    this.message = "Will you send some candy?";
};

Main.prototype.callMom = function(){
    alert('Hi Mom! ' + this.message);
};

function otherFile(){
    // you could create a new instance of Main if there isn't one available to you here
    var main = new Main(); 
    main.callMom();    
}

otherFile();
​

这里有一些 jsfiddles,以便您可以使用这些示例:
http://jsfiddle.net/lbstr/A3dSB/
http://jsfiddle.net/lbstr/FyDAL/
http://jsfiddle.net/lbstr/2TLu2/

于 2012-08-14T14:12:03.520 回答