1

私はこのようなものを持っています:

// This executes once when the page loads.
(function() {
    //under some conditions, it calls:
    myfunction();

    function myFunction() {  
        // defines function
    }
}());

function thisIsCalledByAnOnClick() {
    // HERE I need to call myFunction()
}

コンソールから呼び出されたくないmyFunction()ので、無名関数で囲みました。では、別の場所で呼び出す必要がある場合は、2 回宣言する必要がありますか?それともどうすればよいでしょうか?

4

4 に答える 4

2

クロージャ内でthisIsCalledByAnOnClickにアクセスできますmyFunction。詳細については、モジュール パターンを参照してください。

// This executes once when the page loads.
var modul = function() {
    //under some conditions, it calls:
    myfunction();

    function myFunction() {
        // defines function
    }

    return {
        thisIsCalledByAnOnClick : function() {
        // HERE I need to call myFunction()
        }
    };
}();
于 2013-07-27T20:44:26.853 に答える
1
  1. 無名関数内で thisIsCalledByAnOnclick() を定義します。
  2. addEventListener で onClick ハンドルを割り当てます。
于 2013-07-27T21:10:49.320 に答える
0

コンストラクター関数を使用して、両方の関数をカプセル化できます。1 つは公的機能として、もう 1 つは非公開です。

D.

于 2013-07-27T20:48:29.880 に答える
0
function() {
     xyz = function() {
           return this;
           };

     xyz.prototype= {

     Myfunction1 : function(param1,param2)  {
     //some code!!!
     },
     Myfunction2 : function(param1,param2) {
     //some code!!!
     }
     };
})();

function thisIsCalledByAnOnClick() {

        instance=new xyz();
        instance.Myfunction1(a,b)
}
于 2013-07-27T21:06:12.457 に答える