Es6 程序中的类和构造函数

Posted

技术标签:

【中文标题】Es6 程序中的类和构造函数【英文标题】:Classes and constructor in Es6 program 【发布时间】:2020-05-10 13:58:41 【问题描述】:

使用一个接受 2 个参数(名称和距离)的构造函数创建一个类 car。在类中包含一个原型方法,该方法返回一条消息(msg)“汽车名称(名称)已经行驶了距离(距离)英里”。

我知道这是一个非常简单的问题,但我想我无法很好地设计代码,虽然它给了我正确的结果,但我认为按照标准它是不正确的??

class Car 
  constructor(name, distance) 
    this.name = name;
    this.distance = distance;

  
  lengthMiles() 
    console.log(`$this.name had travelled for $this.distance miles`)
  


var msg = new Car('Audi', 100);
msg.lengthMiles();

【问题讨论】:

【参考方案1】:

您将通过测试的 100% 工作代码。 下面是正确的代码。只需照原样复制并在编辑器中替换并测试它。 测试后请不要忘记按赞分享答案。

     class Car 
      constructor(name, distance) 
        this.name = name;
        this.distance = distance;
      
      carDistance() 
        return `$this.name had travelled for $this.distance miles`;
      
     
     let Car1 = new Car('Audi', 100);
     const msg = Car1.carDistance();
     console.log(msg);
     module.exports = msg

【讨论】:

请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。【参考方案2】:
class Car 
  constructor(name, distance) 
    this.name = name;
    this.distance = distance;

  
  carDistance() 
    return `$this.name had travelled for $this.distance miles`;
  

let Car1 = new Car('Audi', 100);
const msg = Car1.carDistance();
console.log(msg);
module.exports = msg

【讨论】:

【参考方案3】:

问题陈述如下:

在类中包含一个原型方法,该方法返回一条消息(msg)“汽车名称(名称)已经行驶了距离(距离)英里”。

这应该意味着该方法实际上使用return 而不是打印到控制台。

class Car 
  constructor(name, distance) 
    this.name = name;
    this.distance = distance;

  
  lengthMiles() 
    return `$this.name had travelled for $this.distance miles`;
//  ^^^^^^ --------------------------- using a return statement
                              //    |
                              //    |
                               //    |
var car = new Car('Audi', 100);//    |
var msg = car.lengthMiles();   //    |
console.log(msg);// <----------------- printing the message here

【讨论】:

谢谢,我会检查这个 另外,快速提问,当我们谈论使用原型时;它基本上是一个非构造函数/方法。 是的,class 内部定义的所有方法实际上都附加到原型上。老实说,这部分问题听起来很奇怪,因为如果你有一个类,你应该说“包含一个方法”,不需要提到原型。 感谢您的意见。真的很感激!! 令人惊讶的是,虽然代码运行;它仍然给出 npm 错误。 sn-p 如下:npm WARN notsup 跳过可选依赖:fsevents@1.2.9 不支持的平台:想要 "os":"darwin","arch":"any"(当前:"os":" linux","arch":"x64") 在 5.759 秒内审计了 6063 个包,发现 232 个高危漏洞运行npm audit fix 来修复它们,或npm audit 了解详情 > class@1.0.0 test /projects/challenge > mocha测试 --reporter mocha-junit-reporter 汽车奥迪已经行驶了 1000 英里 npm 错误!测试失败。有关更多详细信息,请参见上文。

以上是关于Es6 程序中的类和构造函数的主要内容,如果未能解决你的问题,请参考以下文章

ES6中的类

ES6中的类

Class类和function函数的面向对象设计以及用法区别

类构造函数中的ES6解构[重复]

Dart中的类和单例模式

[类和对象]构造和析构