类
小于 1 分钟
声明
类的声明:
class MyClass {
constructor() { ... }
method1() { ... }
method2() { ... }
method3() { ... }
...
}
然后使用 new MyClass() 来创建具有上述列出的所有方法的新对象。
new 会自动调用 constructor() 方法,因此我们可以在 constructor() 中初始化对象。传入的参数也会由 constructor() 接收并处理:
class User {
constructor(name) {
this.name = name;
}
sayHi() {
alert(this.name);
}
}
let user = new User("John"); // => constructor("John") => this.name = "John"
user.sayHi(); // => John
类表达式:
let User = class {
sayHi() {
alert("Hello");
}
};
也可以有名字,但只在类的内部可见:
let User = class userClass {
sayHi() {
alert("Hello");
}
};
alert(userClass); // => error!
类表达式的用法可以和函数结合起来,实现动态创建需要的类:
function makeClass(phrase) {
return class {
sayHi() {
alert(phrase);
}
};
}
let User = makeClass("Hello");
new User().sayHi(); // User类有sayHi方法!