zoukankan      html  css  js  c++  java
  • 遍历对象的属性

    遍历出对象的属性可以用for in语句,如:

    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 | 
  • 相关阅读:
    Spring Bean的生命周期
    Java中的Object类
    Java线程池七个参数
    ROS 第五讲 在模拟器中构建第一个机器人
    ROS 第四讲 让小车在RViz与Gazebo模拟器中跑起来
    ROS 第三讲 操控小乌龟
    ROS 第二讲 基本操作
    ROS 第一讲 引入
    自然语言处理(二) 新词发现或非监督词典构建
    递归找到一个复杂对象中的某个值和它的最小层级
  • 原文地址:https://www.cnblogs.com/fxair/p/2303421.html
Copyright © 2011-2022 走看看