【问题标题】:constructor parameters in javascriptjavascript中的构造函数参数
【发布时间】:2019-09-04 08:49:52
【问题描述】:

我正在尝试学习 javascript 中的构造函数。我在看这个构造函数的一些教程:

class Human{
    constructor() {
      this.gender = 'male'

    }
    printGender(){
      console.log(this.gender);
    }
  }

也用较短的语法编写,如下所示:

class Human{
    gender = 'male';

    printGender = () =>{
      console.log(this.gender);
    }
  }

我没有问题理解这一点。但是,如果我有一些参数怎么办。比如这样:

class Human{
    constructor(gender, height) {
      this.gender = gender;
      this.height = height;

    }
    printGender(){
      console.log(this.gender);
    }
  }

我如何编写这个更短的语法并且还有参数。我找不到关于这个问题的任何信息。有什么帮助吗?

【问题讨论】:

  • 请避免在此上下文中使用“ES7”一词。 ES7 于 2016 年问世,不包含这些功能。这些只是实验性提案。
  • 没问题,换成实验性提案
  • 如果您正在阅读的任何内容都将此语法称为“ES7”,那么您可能应该停止阅读它并找到其他来源。这是TC39 proposal currently in progress 的一部分。
  • 非常感谢您的指导。非常感谢!

标签: javascript ecmascript-6 ecmascript-next


【解决方案1】:

你写的代码是可以接受的。

你还可以这样做:

class Human {
    gender;
    height;

    constructor(gender, height) {
      this.gender = gender;
      this.height = height;

    }
    printGender(){
      console.log(this.gender);
    }
  }

【讨论】:

  • 谢谢,但我的问题是如果没有像第二个例子那样的构造函数,但有参数,我怎么能做到这一点。
  • 你不能......这是构造函数参数的唯一方法。除非,您有一个为属性设置参数的超类 - 即在 React.Component 内,您可以在子类中使用 this.props 来设置属性,因为超 Component 类将 props 参数分配给 @987654325 @属性。
【解决方案2】:

前期字段声明只是一个自我文档。要设置实例值,我们必须像@Tobiq 所说的那样在类的实例化过程中使用构造函数方法。

【讨论】:

    猜你喜欢
    • 2016-08-06
    • 2017-06-12
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2011-04-11
    • 2010-12-05
    • 1970-01-01
    相关资源
    最近更新 更多