1

私はこの問題を抱えています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();
​

これらの例で遊ぶことができるように、いくつかのjsfiddleを次に示します。http://jsfiddle.net/lbstr/A3dSB/
http://jsfiddle.net/lbstr/FyDAL/
http://jsfiddle.net/lbstr/2TLu2/

于 2012-08-14T14:12:03.520 に答える