Liên hệ
javascript

Đối tượng trong JavaScript

Tạo và sử dụng các đối tượng trong JavaScript gần giống với các khái niệm trong lập trình hướng đối tượng, như thuộc tính, phương thức

Các đối tượng - Object

Các biến trong JavaScript chứa các dữ liệu, các đối tượng cũng tương tự như vậy, nhưng nó chứa được nhiều giá trị

Hãy nghĩ một đối tượng là một danh sách các giá trị được viết theo cặp name:value

Ví dụ:

var person = {
    name: "John",
    age: 31,
    favColor: "green",
    height: 183
};

Các giá trị này gọi là thuộc tính của đối tượng. Vị dụ trên thuộc tính name có giá trị là "John"

Truy cập đến thuộc tính đối tượng

Có 2 cách để truy cập đến thuộc tính đối tượng, ví dụ:

objectName.propertyName
//hoặc
objectName['propertyName']
var person = {
 name: "John", age: 31,
 favColor: "green", height: 183
};

var x = person.age;
var y = person['age'];

Trong JavaScript xây dựng sẵn thuộc tính length để cho biết số ký tự của thuộc tính hoặc chuỗi

var course = {name: "JS", lessons: 41};
document.write(course.name.length);
//In ra :  2

Khởi tạo đối tượng

Cách thứ nhất là tạo bằng phương pháp cố định

var person = {
name: "John", age: 42, favColor: "green"
};

Vậy có đối tượng tên person với các thuộc tính name, age, favColor

Khởi tạo bằng hàm tạo

Với cách thứ 2 này bạn khai báo một hàm gọi là hàm tạo rồi tạo ra đối tượng bằng cú pháp new hamtao()

Trong hàm tạo, sử dụng từ khóa this để tham khảo đến đối tượng, thông qua nó truy cập các thuộc tính

//Hàm khởi tạo
function person(name, age, color) {
  this.name = name;
  this.age = age;
  this.favColor = color;
}

//Tạo đối tượng
var p1 = new person("John", 42, "green");
var p2 = new person("Amy", 21, "red");

document.write(p1.age); // Outputs 42
document.write(p2.name); // Outputs "Amy"

Phương thức trong đối tượng

Một đối tượng ngoài các thuộc tính ra nó còn chứa hàm gọi là phương thức, ví dụ truy cập một hàm

objectName.methodName()

Như bạn đã biết khi viết chuỗi bạn có sử dụng đến document.write() thì write chính là phương thức của đối tượng document

Phương thức thuộc về một đối tượng, đối tượng này được hàm tham khảo qua từ khóa this

Thường các phương thức được định nghĩa qua một hàm khởi tạo đối tượng.

//Hàm khởi tạo đối tượng
function person(name, age) {
  this.name = name;
  this.age = age;
  this.changeName = function (name) {
    this.name = name;
  }
}

//Tạo đối tượng
var p = new person("David", 21);

p.changeName("John");
//Giờ p.name bằng "John"

Các phương thức bạn cụng có thể định nghĩa bên ngoài hàm khởi tạo, ví dụ


function person(name, age) {
  this.name= name;
  this.age = age;
  this.yearOfBirth = bornYear; //Gán phương thức bên ngoài
}

//Hàm bên ngoài hàm tạo
function bornYear() {
  return 2016 - this.age;
}

var p = new person("A", 22);
document.write(p.yearOfBirth());
// Outputs 1994

Vui lòng đăng ký ủng hộ kênh