Hoisting

In Javascript all declarations (var, let, const, function, function*, class) are hoisted but it should be declared in same scope.
Here you declared a class which is in fact "special function".Let's assume that your function Foo() and class Foo both are in global scope.
class Foo {
   constructor(x, y) {
      this.x = x;
      this.y = y;
   }
}
Following is the compiled code of your class Foo.
var Foo = (function () {
    function Foo(x, y) {
        this.x = x;
        this.y = y;
    }
    return Foo;
}());


Comments

Popular Posts