首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不影响其他构造函数的情况下更改构造函数的一个属性?

如何在不影响其他构造函数的情况下更改构造函数的一个属性?
EN

Stack Overflow用户
提问于 2018-06-11 12:15:47
回答 2查看 34关注 0票数 0

如何在方法"refactorGroupInfo“中更改构造函数的一个属性,以便其他属性不会”未定义“。或如何使此方法具有通用性,以便您可以更改构造函数的一个属性或所有属性。

代码语言:javascript
复制
class Group {
    constructor(nameGroup,course,specialization) {
            this.nameGroup = nameGroup;
            this.course = course;
            this.specialization = specialization;
    }
    refactorGroupInfo(nameGroup, course,specialization) {
        this.nameGroup = nameGroup;
        this.course = course;
        this.specialization = specialization;
    }
}
let Dev = new Group("D-11",4,"Front-end");
Devs.refactorGroupInfo("D-12");
console.log(Devs);

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-11 12:28:39

我更喜欢使用一个对象,这样你在里面定义的每个键都会被修改。

代码语言:javascript
复制
class Group {
  constructor(nameGroup, course, specialization) {
    this.nameGroup = nameGroup;
    this.course = course;
    this.specialization = specialization;
  }

  refactorGroupInfo(object) {
    Object.keys(object).forEach((x) => {
      this[x] = object[x];
    });
  }
}

const dev = new Group('D-11', 4, 'Front-end');

dev.refactorGroupInfo({
  nameGroup: 'D-12',
});

console.log(dev);

票数 2
EN

Stack Overflow用户

发布于 2018-06-11 12:24:14

在您的refactorGroupInfo函数中,您可以添加一个检查,以查看该函数的参数是否尚未定义。

代码语言:javascript
复制
refactorGroupInfo(nameGroup, course,specialization) {
    this.nameGroup = typeof nameGroup !== 'undefined' ? nameGroup : this.nameGroup;
    this.course = typeof course !== 'undefined' ? course : this.course;
    this.specialization = typeof specialization !== 'undefined' ? specialization : this.specialization;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50797517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档