vislite
Version:
灵活、快速、简单的数据可视化交互式跨端前端库
43 lines (40 loc) • 1.26 kB
JavaScript
/*!
* mergeOption of VISLite JavaScript Library v1.3.0
* git+https://github.com/oi-contrib/VISLite.git
*/
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 };