ES6中面向对象构造函数的参数写法

发布于 2022-09-04 06:12:13 字数 344 浏览 18 评论 0

class Person{
  constructor(props){
      this.id  = props.id;
      this.name = props.name;
  }
}
class Student extends Person{
  constructor(props,props1){
     super(props);
     this.stuNum = props1.stuNum;
     this.stuNum1 = props1.stuNum1;
  }
}

和props改成id,name
props1改成stuNum,stuNum1

哪个设计方式更好呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拿命拼未来 2022-09-11 06:12:13
class Person {
    constructor(id, name) {
    }
}

这种方式对构造函数的定义非常清晰,要求就是 idname。按这个思想定义 Student 会是这样:

class Student extends Person {
    constructor(id, name, stuNum, stuNum1) {
    }
}

参数越来越多。由于 JavaScript 对参数没有强制要求(没有静态检查),所以参数越多,越容易出错。这种情况下可以针对 JavaScript 的动态特性来进行一点改革

class Person {
    constructor(props) {
        this.id = props.id;
        this.name = props.name;
    }
}

class Student extends Person {
    constructor(props) {
        super(props);
        this.stuNum = props.stuNum;
        this.stuNum1 = props.stuNum1;
    }
}

参数简单了,现在还需要做的事情就是,写上注释,说明 props 应该包含些什么属性。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文