Добавить к переменной с помощью класса

1

Я создаю 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
    Вы ничего не делаете с результатом функции, реже всего сохраняете его в объекте, и при этом у вас нет метода toString который бы дал вам то, что вы хотите.
Теги:
class
declaration

2 ответа

1
Лучший ответ

Если вы используете 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
  • 1
    это работа! Спасибо!
  • 0
    Добро пожаловать, рад, что это помогает.
0

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

  • Сначала инициализируйте свой объект пустым массивом 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());

Ещё вопросы

Сообщество Overcoder
Наверх
Меню