日期:2014-05-16  浏览次数:20418 次

JavaScript没有static成员变量,那怎样让成员变量只赋值一次?
比如,有一个很大巨大的东西 bigObj ,某个类需要它作为成员变量,但这个类的所有实例都只需要这个bigObj 就行,不需要为每个实例赋值一次

function classA(_name){
var usebigObj = bigObj ;
//this.usebigObj  = bigObj ;
}

var a = new classA("abc");
不管哪种,都要为每个实例赋值一次,有没有像C++或java的static策略啊?
------解决方案--------------------
没有,
只有大家共同约定。



就算勉强让你搞出来,那个解析可要你命
------解决方案--------------------
var T=(function(){
var a=0;
function F(){};
F.prototype.showA=function(){
alert(a);
}
return F;
})()
var f=new T();
f.showA();
闭包  可以实现静态变量的  不可以改的话就只提供get方法  不提供set方法
------解决方案--------------------
那就直接用全局变量呗
------解决方案--------------------
var T=(function(){
var a=0;
var b=0;
function F(){};
F.prototype.setA=function(x){
if(!b){
a=x;
b=1;
}
}
F.prototype.getA=function(){
return a;
}
return F;
})()
var f=new T();
f.setA(10);
alert(f.getA());
var b=new T();
b.setA(15);
alert(b.getA());
------解决方案--------------------
function classA(_name){
this.member = "";
}
classA. prototype = {
staticmember:"abc"
}