2

重複の可能性:
JavaScriptの静的変数

javascriptで自己メンバーを使用して静的カプセル化を行うにはどうすればよいですか?phpなど:

class bar{
      static public $foo;
      static public function set() {
            self::$foo = 'a';
      }
}
bar::set();

javascriptの場合:var bar = function(){???????? } bar.set();

ありがとう!

4

2 に答える 2

2

のプロパティとして定義するだけですbar

bar.foo = null;
bar.set = function() {
    bar.foo = "a";
}

ここに素晴らしい概要があります:

var bar = function() {
    // Private instance variables
    var a = 1;
    // Public instance variables
    this.b = 5;
    // Privileged instance methods
    this.c = function() {
        return a;
    }
};
// Public instance methods
bar.prototype.d = function() {
    return ++this.b;
}

// Public static variables
bar.foo = null;
// Public static methods
bar.set = function() {
    bar.foo = "a";
}
于 2012-06-05T10:34:13.593 に答える
0

オブジェクトを作成して返すクロージャを作成します。クロージャー内でローカル変数を宣言することができ、それらはスコープにプライベートです:

var bar = (function(){

  var foo;

  return {
    set: function(){
      foo = 'a';
    }
  };

})();

bar.set();
于 2012-06-05T10:38:08.113 に答える