码迷,mamicode.com
首页 > 其他好文 > 详细

用来枚举属性的对象工具函数

时间:2017-12-22 15:59:57      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:pos   blog   res   枚举   数组   fun   obj   pre   type   

1.把p中可枚举的属性赋值到o,并返回o(若o和p中有同名属性则覆盖)

function extend(o,p){
      for(prop in p){
           o[prop]=p[prop]
      }
      return o
}

2.把p中可枚举的属性赋值到o,并返回o(若o和p中有同名属性,o不受影响)  

function merge(o,p){
      for(prop in p){
           if(o.hasOwnProperty[prop]) continue
           o[prop]=p[prop]
      }
      return o
}

3.如果o中属性在p中没有同名属性,则从o中删除这个属性

function restrict(o,p){
      for(prop in o){
           if(!(prop in p))  delete o[prop]
      }
      return o
}

4.如果o中属性在p中存在同名属性,则从o中删除这个属性

function subtract(o,p){
      for(prop in p){
           delete o[prop]
      }
      return o
}

5.返回一个新对象,这个对象拥有同时在o和p中出现的属性,如果o和p中有重名属性,使用p中属性值

function union(o,p){
   return extend(extend({},o),p)
}

6.返回一个新对象,这个对象拥有同时在o和p中出现的属性,p中的属性值被忽略  

function intersection(o,p){
   return restrict(extend({},o),p)
}

7.返回一个数组,这个数组是o中可枚举的自有属性的名字  

function keys(o){
  if(type of  o !== "object")  throw TypeError()
  var result = []
  for(var  prop in o){
    if(o.haOwnProperty(prop))
                result.push(prop)
   } 
   return result
}

  

  

  

  

用来枚举属性的对象工具函数

标签:pos   blog   res   枚举   数组   fun   obj   pre   type   

原文地址:http://www.cnblogs.com/wangxiayun/p/8086026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!