JavaScript 类
构造方法
构造方法是一种特殊的方法:
- 它必须有确切的名称的 "constructor"
- 创建新对象时自动执行
- 用于初始化对象属性
- 如果您没有定义构造方法,JavaScript 会添加一个空的构造方法。
类方法
创建类方法的语法与对象方法相同。
请使用关键字 class 创建一个类。
请始终添加 constructor() 方法。
然后添加任意数量的方法。
创建一个名为 "age" 的类方法,该类方法返回汽车年龄:
实例
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
let date = new Date();
return date.getFullYear() - this.year;
}
}
let myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
let date = new Date();
return date.getFullYear() - this.year;
}
}
let myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";
您可以向类方法发送参数:
实例
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
let date = new Date();
let year = date.getFullYear();
let myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is " + myCar.age(year) + " years old.";
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
let date = new Date();
let year = date.getFullYear();
let myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is " + myCar.age(year) + " years old.";
浏览器支持
下表注明首个完全支持 JavaScript 类的浏览器版本:
Chrome 49 | Edge 12 | Firefox 45 | Safari 9 | Opera 36 |
Mar, 2016 | Jul, 2015 | Mar, 2016 | Oct, 2015 | Mar, 2016 |
"use strict"
类中的语法必须以"严格模式"编写。
如果您不遵循"严格模式"规则,将收到错误消息。
实例
在"严格模式"下,如果您使用变量而不声明它,会得到错误:
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
// date = new Date(); // 这行不通
let date = new Date(); // 这将正常工作
return date.getFullYear() - this.year;
}
}
亲自试一试 »
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
// date = new Date(); // 这行不通
let date = new Date(); // 这将正常工作
return date.getFullYear() - this.year;
}
}
在 JS 严格模式 中学习更多关于"严格模式"的内容。