vislite
Version:
灵活、快速、简单的数据可视化交互式跨端前端库
39 lines (36 loc) • 1.16 kB
JavaScript
var toString = Object.prototype.toString;
function getType(value) {
if (value == null) {
return value === undefined ? '[object Undefined]' : '[object Null]';
}
return toString.call(value);
}
function isPlainObject(value) {
if (value === null || typeof value !== 'object' || getType(value) != '[object Object]') {
return false;
}
if (Object.getPrototypeOf(value) === null) {
return true;
}
var proto = value;
while (Object.getPrototypeOf(proto) !== null) {
proto = Object.getPrototypeOf(proto);
}
return Object.getPrototypeOf(value) === proto;
}
function mergeOption(oldOption, newOption) {
(function doit(oldOption, newOption) {
for (var key in newOption) {
var value = newOption[key];
if (isPlainObject(value)) {
if (!oldOption[key])
oldOption[key] = {};
doit(oldOption[key], newOption[key]);
}
else {
oldOption[key] = value;
}
}
})(oldOption, newOption);
}
export { mergeOption as default };