1classPerson{ 2constructor(name,age){ 3this.name=name; 4this.age=age; 5} 6 7greet(){ 8console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); 9}10}1112constjohn=newPerson('John',30);13john.greet();// 输出:Hello, my name is John and I am 30 years old.
constructor 是一个特殊的方法,当创建类的新实例时自动调用。
this 关键字在构造函数中指向新创建的对象实例。
使用类表达式
1constPerson=class{ 2constructor(name,age){ 3this.name=name; 4this.age=age; 5} 6 7greet(){ 8console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); 9}10};1112constjane=newPerson('Jane',25);13jane.greet();// 输出:Hello, my name is Jane and I am 25 years old.
继承
JavaScript中的类可以使用extends关键字实现继承。
1classEmployeeextendsPerson{ 2constructor(name,age,jobTitle){ 3super(name,age);// 调用父类的constructor(name, age)
4this.jobTitle=jobTitle; 5} 6 7describe(){ 8console.log(`${this.name} is a ${this.age} year old ${this.jobTitle}.`); 9}10}1112constemployee=newEmployee('Alice',28,'Developer');13employee.describe();// 输出:Alice is a 28 year old Developer.
1classPerson{ 2#name; 3constructor(name){ 4this.#name=name; 5} 6 7getname(){ 8returnthis.#name; 9}1011setname(value){12this.#name=value;13}1415greet(){16console.log(`Hello, my name is ${this.#name}.`);17}18}1920constperson=newPerson('John');21person.greet();// 输出:Hello, my name is John.
22console.log(person.name);// 输出:John
23person.name='Jane';// 设置名字
24person.greet();// 输出:Hello, my name is Jane.