search

Home  >  Q&A  >  body text

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

1

2

3

4

5

6

7

8

9

10

11

12

13

<code>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;

  

}</code>

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

哪个设计方式更好呢

伊谢尔伦伊谢尔伦2939 days ago553

reply all(1)I'll reply

  • 大家讲道理

    大家讲道理2017-04-11 09:59:45

    1

    2

    3

    4

    <code class="javascript">class Person {

        constructor(id, name) {

        }

    }</code>

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

    1

    2

    3

    4

    <code class="javascript">class Student extends Person {

        constructor(id, name, stuNum, stuNum1) {

        }

    }</code>

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    <code class="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;

        }

    }</code>

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

    reply
    0
  • Cancelreply