- function ObjectWarpper(initiallyObject){
- var obj = {};
- var index = 0;
- this.extend = function(objs){
- for(var val in objs){
- if(!this.isContainKey(val)){
- index++;
- }
- obj[val] = objs[val];
- }
- return this;
- }
- this.set = function(key,value){
- if(typeof(key) === 'string'){
- obj[key] = value;
- index++;
- }else if(typeof(key) === 'object'){
- this.extend(key);
- }
- }
- this.isContainKey = function(key){
- return typeof(obj[key]) !== 'undefined';
- }
- this.get = function(key){
- if(typeof(obj[key]) !== 'undefined'){
- return obj[key];
- }
- return null;
- }
- this.size = function(){
- return index;
- }
- this.remove = function(key){
- var temp = this.get(key);
- if(temp != null){
- delete obj[key];
- index--;
- }
- return temp;
- }
- this.loop = function(callback,deep){
- if(this.size() == 0){
- return;
- }
- if(typeof(callback) !== 'function' || typeof(callback) === 'undefined'){
- callback = function(key,value){};
- }
- if(typeof(deep) === 'undefined' || typeof(deep) !== 'number'){
- deep = 1;
- }
- if(deep <= 0){
- return;
- }
- deep--;
- for(var val in obj){
- if(deep > 0 && obj[val] instanceof ObjectWarpper){
- obj[val].loop(callback,deep);
- }else{
- callback(val,obj[val]);
- }
- }
- }
- this.getObj = function(){
- return obj;
- }
- if(typeof initiallyObject === 'object'){
- this.extend(initiallyObject);
- }
- }
- var test3 = new ObjectWarpper({'4v10':'我是第四层'});
- var test2 = new ObjectWarpper();
- test2.set({'3v7':'adssdfssfsd','3v11':test3});
- var test1 = new ObjectWarpper();
- test1.set({'3v6':'第三层内容'});
- var test = new ObjectWarpper({'2v4':'递归内容','2v5':test1,'2v9':'我是第二层v9','2v8':test2});
- test.set('append','后来添加');
- var wo = new ObjectWarpper({'1v1':'sdfsfs','1v2':1231312,'1v3':test});
- wo.loop(function(key,value){
- alert('key:'+key+" value:"+value);
- },3);
- //该片段来自于http://www.codesnippet.cn/detail/2210201410777.html
来源: http://www.codesnippet.cn/detail/2210201410777.html