1.函数申明可以提升,类定义不能提升
console.log(FunctionExpression);
var FunctionExpression = function(){};
console.log(FunctionExpression);
console.log(FunctionDeclaration);
function FunctionDeclaration(){};
console.log(FunctionDeclaration);
console.log(ClassExpression);
var ClassExpression = class{};
console.log(ClassExpression);
console.log(ClassDeclaration);
class Classdeclaration{};
console.log(ClassDeclaration);
2.函数受函数作用域限制,而类受块作用域限制
{
function FunctionDeclaration(){}
class ClassDeclaration{}
}
console.log(FunctionDeclaration);
console.log(ClassDeclaration);
3.类表达式的名称是可选的。在把类表达式赋值给变量后,可以通过name属性来取得类表达式的名称字符串。但不能在类表达式作用域外部访问这个标识符。
let Person = Class PersonName{
identify(){
console.log(Person.name,PersonName.name);
}
}
let p = new Person();
p.identify();
console.log(PersonName);
|