1

以下に示すようなパターンを使用して、プライベート メソッドとパブリック メソッドを持つ JavaScript ライブラリを作成しています。このライブラリを含むページが MYLIB.login() を呼び出し、ユーザーが [OK] または [キャンセル] をクリックしたときに 2 つの関数を提供するという考え方です。

var MYLIB = function() {
    //  private data and functions
    var showForm = function() {
        //  create and show the form
    };
    var onOK = function() {
        //  hide the form, do some internal stuff, then…
        okFunction();
    };
    var onCancel = function() {
        //  hide the form, do some internal stuff, then...
        cancelFunction();
    };

    var okFunction = null;
var cancelFunction = null;

    //  public functions 
    return {
        login : function(okf, cancelf) {
           okFunction = okf;
           calcelFunction = cancelf;
           showForm();
        },
    };  
}();

私の質問は、プライベートな内部関数 onOK と onCancel を呼び出すフォームのボタンを取得することです。ボタンは次のようになります。

<button onclick="onOK();">OK</button>
<button onclick="onCancel();">Cancel</button>

関数を公開すれば動作させることができますが、すべてを公開することもできます。どうすればやりたいことができますか?C++/Java のバックグラウンドから来て、良い OO の男になろうとしています。ありがとう。

4

1 に答える 1

0

方法はたくさんありますが、onOK と onCancel はクラスの外からアクセスする必要があるため、公開する必要があります。次のようなアクションを処理するパブリック関数を作成できます。

this.setStatus = function(status){
  // check if the conection is on before calling the functions and stuff like that
  if(status) onCancel();
  else onOK();
}

実際には、ログ実行でこれをどこに移動するかによって異なります。Javascript は多くの OOP 機能を提供しますが、C++/Java とは大きく異なります。

ヒント: プライベート関数を使用する場合は、priviledgiat 関数を使用してプライベート メソッドを操作することをお勧めします (http://cuzztuts.blogspot.ro/search/label/oop) 。順序も重要であることを覚えておいてください。 witch では、変数を宣言します。

于 2012-06-25T17:28:06.690 に答える