使用 class 附加到变量

Append to variable using class

我创建了 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

如果您要写一个 class,我会采用这种方法:

  • 首先,使用空参数数组初始化您的对象
  • 然后,在 append 方法中提供实例的数组
  • 最后,编写一个 toString 方法,它将 "glue" 参数与预期的语法一起

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());

如果您使用 Class,您可以做的是在 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