-
class
有变量提升,但初始化不会赋值。
const demo = new Demo() // 会报错 ReferenceError(引用错误)
class Demo {}
-
class
内部会启用严格模式use strict
class Demo {
constructor (){
foo = 1 // 报错 foo未定义
}
}
const demo = new Demo()
-
class
中的所有方法(包括静态方法和实例方法)都没有原型对象prototype
, 也没有constructor
, 故不能使用new
方法调用class
中的方法。 但class
必须使用new
调用。
class Demo {
constructor (){
}
test() {
console.log("test")
}
}
const demo1 = Demo() // 报错 Class constructor Demo cannot be invoked without 'new'
const demo = new Demo()
new demo.test() // 报错 demo.test is not a constructor
-
class
内部无法重新类名
class Foo {
constructor() {
this.foo = 42;
Foo = 'Fol'; // TypeError: Assignment to constant variable.
}
}
new Foo()