zoukankan      html  css  js  c++  java
  • echarts中关于merge的代码

    function merge(target, source, overwrite) {
    // We should escapse that source is string
    // and enter for ... in ...
    if (!isObject$1(source) || !isObject$1(target)) {
    return overwrite ? clone(source) : target;
    }

    for (var key in source) {
    if (source.hasOwnProperty(key)) {
    var targetProp = target[key];
    var sourceProp = source[key];

    if (isObject$1(sourceProp)
    && isObject$1(targetProp)
    && !isArray(sourceProp)
    && !isArray(targetProp)
    && !isDom(sourceProp)
    && !isDom(targetProp)
    && !isBuiltInObject(sourceProp)
    && !isBuiltInObject(targetProp)
    && !isPrimitive(sourceProp)
    && !isPrimitive(targetProp)
    ) {
    // 如果需要递归覆盖,就递归调用merge
    merge(targetProp, sourceProp, overwrite);
    }
    else if (overwrite || !(key in target)) {
    // 否则只处理overwrite为true,或者在目标对象中没有此属性的情况
    // NOTE,在 target[key] 不存在的时候也是直接覆盖
    target[key] = clone(source[key], true);
    }
    }
    }

    return target;
    }
  • 相关阅读:
    几种常用类的学习
    类,接口
    方法
    数组使用
    条件控制与循环
    类型转换,运算符
    Java基本类型
    SVN基本使用
    【转】MySQL的btree索引和hash索引的区别
    常用命令(java、linux)
  • 原文地址:https://www.cnblogs.com/liuhao-web/p/9856170.html
Copyright © 2011-2022 走看看