Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的静态自成员_Javascript_Static_Self - Fatal编程技术网

javascript中的静态自成员

javascript中的静态自成员,javascript,static,self,Javascript,Static,Self,可能重复: 如何在javascript中使用self成员进行静态封装? 例如在php中: class bar{ static public $foo; static public function set() { self::$foo = 'a'; } } bar::set(); 在javascript中: 变量条=函数(){ ???????? } bar.set() 谢谢 只需将它们定义为条的属性 bar.foo = null;

可能重复:

如何在javascript中使用self成员进行静态封装? 例如在php中:

class bar{
      static public $foo;
      static public function set() {
            self::$foo = 'a';
      }
}
bar::set();
在javascript中: 变量条=函数(){ ???????? } bar.set()


谢谢

只需将它们定义为
条的属性

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";
}

创建一个创建对象并返回它的闭包。在闭包内,您可以声明局部变量,它们是作用域的私有变量:

var bar = (function(){

  var foo;

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

})();

bar.set();

这看起来不像javascript,更像php。@Qmal这正是OP所说的:“这是一些php代码,如何在javascript中执行相同的操作?”您刚刚复制了。请投票结束而不是回答,这样可以避免不必要的重复。@FlorianMargaine在你发表评论之前,我就开始写这篇文章了。你是对的,这是一个重复。我的缺点:-)我的第一个评论仍然适用。我会投票关闭,但我还没有那个特权。希望其他人能帮助投票。而且。。。
newbar()
提供了什么?看起来OP想要的是类一样的解决方案,而不是如何生成私有/公共变量。@FlorianMargaine:Aaaaannd。。。显然没有什么,因为
bar
不是一个函数。问题中的用法表明OP需要一些可以用作对象的东西,什么建议它也可以用作构造函数?好吧,这就是“静态”术语通常的意思:使用可以实例化的类中定义的静态方法。不过,我想你的答案有它的位置。