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需要一些可以用作对象的东西,什么建议它也可以用作构造函数?好吧,这就是“静态”术语通常的意思:使用可以实例化的类中定义的静态方法。不过,我想你的答案有它的位置。