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 | 
  • 相关阅读:
    一文告诉你,为什么要研究JVM原理
    高并发中使用到的RateLimiter源码解析
    WEB应用服务架构的演变(扫盲)
    网上安全方面的涉及到的方面(详解)
    JDK安装
    JDKJRKSDK的区别
    本地同时安装oracle客户端与服务端的注意事项
    WMS不同货主的货如何管理
    LeetCode 101
    WMS一物一码、唯一码
  • 原文地址:https://www.cnblogs.com/fxair/p/2303421.html
Copyright © 2011-2022 走看看