0
Why wrap a class in a var?
What does example B give you that example A doesn't? EXAMPLE A class Rectangle { constructor(height, width) { this.height = height; this.width = width; } } EXAMPLE B var Rectangle = class { constructor(height, width) { this.height = height; this.width = width; } }
1 Resposta
0
Considering only your code samples, there's no benifits to use B (class expression) against A (class declaration)... but that's only the simplest use case of class expressions: the real benefits would come with the fact that a class expression could be used anywhere an expression could be used, as the name suggest ;)
You could say that's almost a taste question, but a few more realistic case would be one where the class expression give advantage over equivalent done with class declaration:
// expressions assigned to object properties (namespace):
const shapes = {
  Rect: class {
    constructor(x,y,w,h) {}
  },
  Disc: class {
      constructor(x,y,r) {}
  },
};
// declaration force to declare classes outside, and assign them to object properties after (much verbose, less readable, and potentially pollute global scope unless you wrap all stuff in an IIFE):
class Rect {
  constructor(x,y,w,h) {}
}
Disc: class {
  constructor(x,y,r) {}
}
const shapes = {
  Rect: Rect,
  Disc: Disc,
};



