代码之家  ›  专栏  ›  技术社区  ›  Marty

使用类附加到变量

  •  1
  • Marty  · 技术社区  · 6 年前

    我创建了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 回复  |  直到 6 年前
        1
  •  1
  •   cнŝdk    6 年前

    如果您使用的是 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
        2
  •  0
  •   Logar    6 年前

    如果你要写一个类,我会选择这种方法:

    • 首先,用空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());