zview-mobile-editor
Version:
A WYSIWYG text editor base on html5 and vue
28 lines • 714 B
JavaScript
/**
* Created by peak on 2017/2/24.
*/
/**
* shadow clone
*
* @param source source object
* @param ext extended object
*/
export default function mixin(source = {}, ext = {}) {
Object.keys(ext).forEach((k) => {
// for data function
if (k === 'data') {
const dataSrc = source[k]
const dataDesc = ext[k]
if (typeof dataDesc === 'function') {
if (typeof dataSrc !== 'function') {
source[k] = dataDesc
} else {
source[k] = () => mixin(dataSrc(), dataDesc())
}
}
} else {
source[k] = ext[k]
}
})
return source
}