Добавить к переменной с помощью класса - PullRequest
0 голосов
/ 11 октября 2018

Я создаю UrlParamClass и хочу знать, как я могу добавить значение.Смотрите этот пример:

class UrlParam {
    append = (key, value) => {
        return `&${key}=${value}`
    }
}

let param = new UrlParam()

param.append('module','clothes')
param.append('module','shoes')
param.append('module','gloves')


console.log(param) //i want to see: &module=clothes&module=shoes&module=gloves

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Если вы используете Class, вы можете использовать внутренний экземпляр attribute в своем классе.

Инициализировать его вваш constructor и продолжайте изменять его в вашем append методе:

class UrlParam {
  constructor(value) {
    this.value = value;
  }
  append(key, value){
    this.value += `&${key}=${value}`
  }
}

let param = new UrlParam('');

param.append('module', 'clothes')
param.append('module', 'shoes')
param.append('module', 'gloves')


console.log(param) //i want to see: &module=clothes&module=shoes&module=gloves
0 голосов
/ 11 октября 2018

Если вы собираетесь написать класс, я бы пошел на такой подход:

  • Сначала инициализируйте ваш объект с пустым массивом params
  • Затем передайтеМассив экземпляра в методе добавления
  • Наконец, напишите метод toString, который будет «склеивать» параметры вместе с ожидаемым синтаксисом

class UrlParam {
    constructor() {
        this.params = [];
    }

    append(key, value) {
        this.params.push({key, value});
    }

    toString() {
        return this.params
            .map(({key, value}) => `&${key}=${value}`)
            .join('');
    }
}

let param = new UrlParam();
param.append('module', 'clothes')
param.append('module', 'shoes')
param.append('module', 'gloves')

console.log(param.toString());
...