区分 实例属性 原型属性 静态属性

function klass(id){
 // 实例属性  
  this.id=id;
  this.pull = [];
}  

// 静态属性
klass.Uid=1; 

// 原型属性 [共有]
klass.prototype.names=[];
// 原型方法
klass.prototype.getPull = function () {console.info(this.pull)};
klass.prototype.setPull = function (a) {this.pull.push(a)} 
  
var obj1=new klass("obj1");  
var obj2=new klass("obj2");  
obj1.names.push(obj1.id); 
obj1.setPull(100);
obj1.getPull(); // [100]

klass.Uid++;  
obj1.names.push(obj2.id);  
klass.Uid++; 
obj2.setPull(101);
obj2.getPull();  // [101]
console.info(klass.prototype.names, obj1.names, obj2.names);  // ["obj1", "obj2"]  ["obj1", "obj2"]  ["obj1", "obj2"]
console.info(klass.Uid) // 3

你可能感兴趣的:(前端,静态属性,原型属性,静态属性)