对象
JavaScript中所有的事物都是对象:字符串、数值、数组、函数等等。此外,JavaScript还允许自定义对象。
对象只是一种特殊的数据,对象拥有属性和方法。
类
在ES6中,class(类)作为对象的模板被引入,可以通过class关键字定义类。class的本质是一个function,它可以看作是一个语法糖,让对象原型的写法更加i清晰、更像面向对象编程的语法。
1. 类定义
// 匿名类
let Example1 = class {
constructor(a) {
this.a = a
}
}
// 命名类
let Example2 = class Example {
constructor(a) {
this.a = a
}
}
2. 类声明
class Example {
constructor(a) {
this.a = a
}
}
类不可重复声明:
class Example{}
class Example{}
// Uncaught SyntaxError: Identifier 'Example' has already been declared
let Example1 = class{}
class Example{}
// Uncaught SyntaxError: Identifier 'Example' has already been declared
且类定义不会像变量定义一样将声明部分提升,这一位置必须在访问前对类进行定义,否则就会报错。
new Example()
let Example = class {}
// Uncaught ReferenceError: Cannot access 'Example' before initialization
类中方法不需要function关键字,方法见不能加分号。