zoukankan      html  css  js  c++  java
  • 枚举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;
    }
  • 相关阅读:
    PHP 布尔类型
    php连接到数据库
    php_2
    php_1
    iOS开发之APP导入添加自定义字体
    iOS开发之判断横竖屏
    iOS开发之iPhone手机屏幕尺寸整理
    iOS开发之关闭暗黑模式
    iOS开发之iOS13推送deviceToken处理
    iOS开发之UIView和CALayer的区别
  • 原文地址:https://www.cnblogs.com/wang-jiang/p/4472832.html
Copyright © 2011-2022 走看看