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;
    }
  • 相关阅读:
    ecshop ajax请求验证captcha(验证码)
    ecshop ajax内置函数Ajax.call
    Execl中函数使用总结
    php应用篇 PHPMailer使用
    Jquery中的选择器
    你的水桶有多满
    在纸上写todo list还是用APP?
    absolute居中
    搬家租房总结
    编译器的作用:将汇编语言翻译成机器语言
  • 原文地址:https://www.cnblogs.com/wang-jiang/p/4472832.html
Copyright © 2011-2022 走看看