Thuộc tính (properties), phương thức (methods) và hàm khởi tạo (contructor)

Thumbnail Image

Các thuộc tính (properties), phương thức (methods) và hàm khởi tạo (contructor) là một trong những khái niệm quan trọng trong lập trình hướng đối tượng nói chung và TypeScript nói riêng. Sau đây chúng ta sẽ đi tìm hiểu nhanh khái niệm và cách sử dụng.

 

1. Thuộc tính.

Thuộc tính (property) trong TypeScript là một biến được liên kết với đối tượng. Nó có thể là các giá trị đại diện cho trạng thái của đối tượng, ví dụ như tên, tuổi, địa chỉ,...

Khi khai báo các thuộc tính (properties) và cả phương thức (methods) của một đối tượng trong TypeScript, bạn cần thêm chúng vào trong class definition.

Để khai báo thuộc tính, bạn cần khai báo tên thuộc tính và kiểu dữ liệu mà nó sẽ chứa.

Ví dụ: 

class Employee {
  firstName: string;
  lastName: string;
}

2. Phương thức.

Phương thức (method) trong TypeScript là một hàm được liên kết với đối tượng và có thể truy cập và sử dụng các thuộc tính của đối tượng. Nó có thể được sử dụng để thực hiện các tác vụ nhất định, ví dụ như tính toán, cập nhật trạng thái, ...

Để khai báo phương thức, bạn cần khai báo tên phương thức, kiểu trả về của phương thức (nếu có) và các tham số (nếu có).

Ví dụ:

class Employee {
  firstName: string;
  lastName: string;
  
  getFullName() {
    return `${this.firstName} ${this.lastName}`;
  }
}

Trong đó, this là từ khóa dùng để truy cập các thuộc tính và phương thức trong class.

 

3. Hàm khởi tạo hay phương thức khởi tạo.

Constructor là một phương thức được sử dụng để khởi tạo giá trị mặc định cho các thuộc tính của đối tượng khi đối tượng được tạo mới. Constructor luôn được gọi khi một đối tượng được tạo mới bằng từ khóa "new".

Ví dụ:

class Employee {
    firstName: string;
    lastName: string;
    
    constructor(firstName: string, lastName: string) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

const employee = new Employee("John", "Doe");

Trong ví dụ trên, constructor của lớp Employee được sử dụng để khởi tạo giá trị cho hai thuộc tính firstName và lastName khi đối tượng employee được tạo mới.

Cuối cùng khi áp dụng cả 3 khái niệm ta có một ví dụ chung như sau: (Áp dụng thêm tham số truyền vào cho phương thức)

class Employee {
    firstName: string;
    lastName: string;
    
    constructor(firstName: string, lastName: string) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
    
    getFullName(prefix: string): string {
        return `${prefix} ${this.firstName} ${this.lastName}`;
    }
}

const employee = new Employee("John", "Doe");
console.log(employee.getFullName("Mr."));

Trong ví dụ trên, chúng ta đã khai báo một phương thức getFullName trong class Employee. Phương thức này có một tham số prefix kiểu string và trả về một giá trị kiểu string. Khi gọi phương thức getFullName với tham số truyển vào "Mr.", nó sẽ trả về chuỗi "Mr. John Doe".