如何减少属性分配的输入(解构,...)?

如何减少打字:


class C {

    Constructor(a,b,c,d,e,f) {

       this.a=a;

       this.b=b; 

       this.c=c; 

       this.d=d; 

       this.e=e; 

    }

}

做这样的事情:


class C {

    Constructor(param: [a,b,c,d,e,f]) {

       this=param;

    }

}

但这种语法不起作用


慕勒3428872
浏览 87回答 1
1回答

HUWWW

而是传入一个对象,然后使用Object.assign:class C {  constructor(obj) {    Object.assign(this, obj);  }}const c = new C({ a: 'a', b: 'b', c: 'c', d: 'd', e: 'e' });console.log(c);注意constructor必须是小写。您还可以使用参数休息语法,让您在调用时避免重复new C:class C {  constructor(...args) {    const props = ['a', 'b', 'c', 'd', 'e'];    const obj = Object.fromEntries(      args        .slice(0, 5)        .map((val, i) => [props[i], val])    );    Object.assign(this, obj);  }}const c = new C('a', 'b', 'c', 'd', 'e');console.log(c);作为BERGI笔记,你也可以调用Array.prototype.entries上props的更少的代码:class C {  constructor(...args) {    const props = ['a', 'b', 'c', 'd', 'e'];    for (const [i, prop] of props.entries()) {      this[prop] = args[i];    }  }}const c = new C('a', 'b', 'c', 'd', 'e');console.log(c);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript