使用类追加到变量

时间:2018-10-11 09:29:02

标签: javascript class declaration

我创建了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 :(得分: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)

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

  • 首先,使用空的params数组初始化对象
  • 然后,在append方法中提供实例的数组
  • 最后,编写一个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());