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 | 
  • 相关阅读:
    经典算法系列二-归并排序
    经典算法系列一-快速排序
    u-boot,linux,文件系统移植笔记1
    ARM函数调用时参数传递规则
    内核移植 nand分区
    LINUX的patch文件打patch
    idea插件使用
    socket通信同步通信,异步通信
    今天学了一个很简易的测试数据库是否连接成功
    wpf中TreeView的使用
  • 原文地址:https://www.cnblogs.com/fxair/p/2303421.html
Copyright © 2011-2022 走看看