ECMAScript 2015(也称为 ES6)引入了 JavaScript 类。
JavaScript 类是 JavaScript 对象的模板。
使用关键字class
创建一个类。
始终添加一个名为constructor()
:
class ClassName {
constructor() { ... }
}
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
上面的示例创建了一个名为"Car" 的类。
该类有两个初始属性:"name" 和 "year"。
JavaScript 类是不是一个东西。
它是一个模板对于 JavaScript 对象。
当你有一个类时,你可以使用该类来创建对象:
上面的例子使用了汽车类创建两个汽车对象。
创建新对象时会自动调用构造函数方法。
构造方法是一个特殊的方法:
如果没有定义构造函数方法,JavaScript 将添加一个空的构造函数方法。
类方法是使用与对象方法相同的语法创建的。
使用关键字class
创建一个类。
始终添加一个constructor()
方法。
然后添加任意数量的方法。
class ClassName {
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 =
"My car is " + myCar.age() + " years old.";
您可以向类方法发送参数:
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=
"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 |
类中的语法必须写在#{0}#中。
如果您不遵循#{0}#规则,将会遇到错误。
在"strict mode"中,如果您使用变量而不声明它,您将会收到错误:
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
// date = new Date(); // This will not work
const date = new Date(); // This will work
return date.getFullYear() - this.year;
}
}
亲自试一试 »
了解有关 "strict mode" 的更多信息:JS 严格模式。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!