s950329
11/29/2017 - 7:49 AM

讓Vue instance能用巢狀的key來修改值

讓Vue instance能用巢狀的key來修改值

/**
 * 讓Vue instance可以用巢狀的key來修改值
 *
 * @type {Object}
 */
Object.defineProperty(Vue.prototype, '$nestedSet', {
  value(key, val) {
    const self = this;
    const keys = key.split('.');

    let target = self;
    for (let i = 0; i < keys.length - 1; i += 1) {
      target = target[keys[i]];
    }
    target[keys.pop()] = val;
  },
  writable: false,
});