枚举for/in

  for/in循环可以遍历对象中所有可以枚举的属性(包括自有属性和继承属性)。对象继承的内置方法不能枚举,凡是在代码中给对象自己或者继承的类添加的属性方法都是可枚举的,但是对象自有的内置属性可不可以枚举,这个不一定,比如我们可以试试Math的内置random属性(不可枚举)和window的内置name属性(可枚举)。

一.以下总结一些枚举对象属性的工具函数:

1.如果o和p有同名属性,p覆盖o

function extend(o,p){
    for(prop in p){
        if(!p.hasOwnProperty(prop)) continue;//屏蔽可枚举的继承属性
        o[prop] = p[prop];
    }
    return o;
}

2.如果o和p有同名属性,p不影响o属性

function merge(o,p){
    for(prop in p){
        if(!p.hasOwnProperty(prop)) continue;//屏蔽可枚举的继承属性
        if(o.hasOwnProperty(prop)) continue;//同名属性跳过
        o[prop] = p[prop];
    }
    return o;
}

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

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

4.删除o中与p中同名的属性

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

 

转载于:https://www.cnblogs.com/wang-jiang/p/4472832.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值