Nahida小于 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方法!
上次编辑于:
贡献者: Nahida