直接先上代码,定义了一个Company类,并且为每个属性添加了一个getter和setter方法。

 
  1. function Company(obj){ 
  2.     this._data = { 
  3.         companyName : ''
  4.         pinyinCode : '' 
  5.     }; 
  6.          
  7.     for(attr in this._data){ 
  8.         var _property = attr.substring(0, 1).toUpperCase() + attr.substring(1); 
  9.         Company.prototype['get'+_property] = function(){ 
  10.         return this._data[attr]; 
  11.         }; 
  12.         Company.prototype['set'+_property] = function(value){ 
  13.         this._data[attr] = value; 
  14.         }; 
  15.     } 
  16.          
  17.     for(attr in obj){ 
  18.         this._data[attr] = obj[attr]; 
  19.     } 
  20.      
  21. var company = new Company({ 
  22.     companyName : '塞彼德信息科技工作室'
  23.     pinyinCode : 'sbdxxkjgzs' 
  24. }); 
  25.      
  26. alert(company.getCompanyName()); 

02-05这里用_data属性实际来保存一个数据区域

09-11行设置了getter行数

12-14行设置了setter行数

17-19行把构造行数里面的参数设置到_data里