javascript - ES6 中命名或未命名类表达式的用途是什么?

标签 javascript ecmascript-6

在代码中,我使用了一个名为“Car”的类。现在,如果我尝试像 var carNew = new Car("ferrari"); 那样使用,那么它会向我抛出一个错误。 那么命名类表达式在ES6中有什么用呢?

'use strict';
var car = class Car{
  constructor(model){
        this.model = model;
    }
}
var carNew = new car("ferrari");

console.log(carNew); //car {model: "ferrari"}
console.log(carNew.constructor == car); //true

最佳答案

对于类表达式,您可以在内部使用类名,但不能在类外:

const Foo = class Self {
  static greetingPrefix() {
    return 'Hello, ';
  }

  greeting() {
    return Self.greetingPrefix() + 'World';
  }
};

const foo = new Foo();
console.log(foo.greeting()); // "Hello, World"


console.log(Self); // throws "Uncaught ReferenceError: Self is not defined"

关于javascript - ES6 中命名或未命名类表达式的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34565362/

相关文章:

javascript - 当像 new(Date) 这样写时,你如何将参数传递给构造函数?

javascript - 在绝对定位的 div 之上垂直居中 div

javascript - 完美滚动改变滚动条

JavaScript 继承魔法

javascript - 在自定义 View 中调用 super() 时,确保传递与传递组件的构造函数相同的 Prop

javascript - 如何重新定义 'this' 并重用另一个类的方法。多态性

typescript - 使用 Typescript 时,es6 Map() 不会编译为 es5

javascript - 如何使用 create-react-app 创建新环境?

javascript - 如何确定 React 中的元素滚动位置

javascript - 重写较短版本的函数