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 | 
  • 相关阅读:
    一行代码解析复杂JSON文件:利用Android自带的包解析JSON
    人生的真相
    为我的外婆写上我的挽歌
    总结2016 展望2017
    [转贴]使用CryptoAPI解析X509证书和P12证书
    2015这一年的进步
    怎样在WINDOWS下面编译LIBCURL
    LINQ TO SQL 怎样 执行存储过程并返回存储过程的临时表
    C调用OPENSSL做REST服务客户端的例子
    一个CLI的 的例子
  • 原文地址:https://www.cnblogs.com/fxair/p/2303421.html
Copyright © 2011-2022 走看看