JavaScript 类
ECMAScript 2015,也称为 ES6,引入了 JavaScript 类。
JavaScript 类是 JavaScript 对象的模板。
JavaScript 类语法
使用关键字 class
创建类。
始终添加一个名为 constructor()
的方法
语法
class 类名 {
constructor() { ... }
}
示例
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
上面的示例创建了一个名为 "Car" 的类。
该类有两个初始属性:"name" 和 "year"。
JavaScript 类 不是 对象。
它是一个 JavaScript 对象的 模板。
使用类
当您拥有一个类时,您可以使用该类创建对象
上面的示例使用 Car 类 创建了两个 Car 对象。
构造函数在创建新对象时自动调用。
构造函数
构造函数是一个特殊方法
- 它必须具有确切的名称 "constructor"
- 它在创建新对象时自动执行
- 它用于初始化对象属性
如果您没有定义构造函数,JavaScript 将添加一个空构造函数。
类方法
类方法的创建语法与对象方法相同。
使用关键字 class
创建类。
始终添加一个 constructor()
方法。
然后添加任意数量的方法。
语法
class 类名 {
constructor() { ... }
method_1() { ... }
method_2() { ... }
method_3() { ... }
}
创建一个名为“age”的类方法,该方法返回汽车的年龄。
示例
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
const date = new Date();
return date.getFullYear() - this.year;
}
}
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"我的汽车是 " + myCar.age() + " 岁。";
您可以将参数发送到类方法
示例
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
const date = new Date();
let year = date.getFullYear();
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"我的汽车是 " + myCar.age(year) + " 岁。";
浏览器支持
下表定义了第一个完全支持 JavaScript 中类的浏览器版本。
Chrome 49 | Edge 12 | Firefox 45 | Safari 9 | Opera 36 |
2016 年 3 月 | 2015 年 7 月 | 2016 年 3 月 | 2015 年 10 月 | 2016 年 3 月 |
"use strict"
类中的语法必须使用“严格模式”。
如果您不遵守“严格模式”规则,您将收到错误。
示例
在“严格模式”中,如果您在未声明的情况下使用变量,您将收到错误。
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
// date = new Date(); // 这将不起作用
const date = new Date(); // 这将起作用
return date.getFullYear() - this.year;
}
}
自己尝试 »
了解更多关于“严格模式”的信息:JS 严格模式。