javascript 动态生成私有变量访问器

  

复制代码 代码如下:

  //创建一个新的用户对象,接受一个有许多属性的对象作为参数

  function User(properties)

  {

  //遍历该对象的所有属性,并保证其作用域正确

  for(var i in properties){

  (function(which){

  var p=i;

  //创建此属性的一个新的读取器(getter)

  which["get"+p]=function(){

  return properties[p];

  };

  //创建此属性的一个新的设置器(setter)

  which["set"+p]=function(val)

  {

  properties[p]=val;

  };

  })(this);

  }

  }

  //创建一个新的用户对象实例,并把具有两个属性的一个对象传入作为参数

  var user=new User({name:"Bob",age:44});

  //读取属性值

  alert(user.getname());

  //设置属性值

  user.setage(23);