/** * Pilot * @author Tevin */ export class Pilot { constructor() { } $data() { return {}; } createOptions(dataAdd) { const options = { methods: {}, }; Object.getOwnPropertyNames(Object.getPrototypeOf(this)).forEach(name => { if (name === 'constructor' || name === '$methods') { return; } if (/^\$/.test(name)) { if (name === '$data' && typeof dataAdd !== 'undefined') { // 当有传data值进来,初始值必须带data中的字段 const dataOrig = this.$data(); options.data = () => { return { ...dataOrig, ...dataAdd, } } } else { options[name.replace('$', '')] = this[name]; } } else { options.methods[name] = this[name]; } }); return options; } }