mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
* fix: Tabbar icon line-height * [new feature] progress add showPivot prop * [new feature] TabItem support vue-router * [new feature] update document header style * [Doc] add toast english ducoment * [new feature] add i18n support * feat: Extract demos from markdown * feat: Base components demos * [new feature] complete demo extract & translate * [fix] text cases * fix: add deepAssign test cases * fix: changelog detail * [new feature] AddressEdit support i18n
35 lines
708 B
JavaScript
35 lines
708 B
JavaScript
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
|
|
function isObj(x) {
|
|
const type = typeof x;
|
|
return x !== null && (type === 'object' || type === 'function');
|
|
}
|
|
|
|
function assignKey(to, from, key) {
|
|
const val = from[key];
|
|
|
|
if (
|
|
val === undefined ||
|
|
val === null ||
|
|
(hasOwnProperty.call(to, key) &&
|
|
(to[key] === undefined || to[key] === null))
|
|
) {
|
|
return;
|
|
}
|
|
|
|
if (!hasOwnProperty.call(to, key) || !isObj(val)) {
|
|
to[key] = val;
|
|
} else {
|
|
to[key] = assign(Object(to[key]), from[key]);
|
|
}
|
|
}
|
|
|
|
export default function assign(to, from) {
|
|
for (const key in from) {
|
|
if (hasOwnProperty.call(from, key)) {
|
|
assignKey(to, from, key);
|
|
}
|
|
}
|
|
return to;
|
|
}
|