js 遍历对象的属性的代码

  如:

  

复制代码 代码如下:

  Function.prototype.addMethod=function(methodName,func){

  if(!this.prototype[methodName]){

  this.prototype[methodName]=func;//给原型增加方法,此方法会影响到该类型的实例上

  }

  return this.prototype;//返回原型,此类型实例可以进行链形调用

  }

  function CustomObject(name,value){

  this.name=name || 'CustomeObject';

  this.value=value || 0;

  this.toString=function(){

  return '[name:'+this.name+',value:'+this.value+']'

  }

  }

  CustomObject.addMethod('testFun',function(){})

  var obj=new CustomObject();

  var info='';

  for(var property in obj){

  info+=property+" | ";

  }

  alert(info); // name | value | toString | testFun |

  但此时for in 也把该对象所继承于prototype对象中的属性也遍历出来了。如果要剔除它所继承的属性,可以用hasOwnProperty语句。如

  

复制代码 代码如下:

  Function.prototype.addMethod=function(methodName,func){

  if(!this.prototype[methodName]){

  this.prototype[methodName]=func;//给原型增加方法,此方法会影响到该类型的实例上

  }

  return this.prototype;//返回原型,此类型实例可以进行链形调用

  }

  function CustomObject(name,value){

  this.name=name || 'CustomeObject';

  this.value=value || 0;

  this.toString=function(){

  return '[name:'+this.name+',value:'+this.value+']'

  }

  }

  CustomObject.addMethod('testFun',function(){})

  var obj=new CustomObject();

  var info='';

  for(var property in obj){

  if(!obj.hasOwnProperty(property)) continue;

  info+=property+" | ";

  }

  alert(info); // name | value | toString |