HomeLập trìnhJavaScriptCách tạo đối...

Cách tạo đối tượng trong JavaScript


bởi Kaashan Hussain

Tất cả chúng ta xử lý các đối tượng theo cách này hay cách khác trong khi viết mã bằng ngôn ngữ lập trình. Trong JavaScript, các đối tượng cung cấp cách để chúng ta lưu trữ, thao tác và gửi dữ liệu qua mạng.

Có nhiều cách mà các đối tượng trong JavaScript khác với các đối tượng trong các ngôn ngữ lập trình chính thống khác, như Java. Tôi sẽ cố gắng trình bày điều đó trong một chủ đề khác. Ở đây, chúng ta hãy chỉ tập trung vào các cách khác nhau mà JavaScript cho phép chúng ta tạo các đối tượng.

Trong JavaScript, hãy coi các đối tượng là một tập hợp các cặp ‘key:value’. Điều này mang đến cho chúng ta cách đầu tiên và phổ biến nhất để tạo các đối tượng trong JavaScript.

Hãy bắt đầu điều này.

1. Tạo đối tượng sử dụng cú pháp ký tự đối tượng

Điều này thực sự đơn giản. Tất cả những gì bạn phải làm là ném các cặp giá trị khóa được phân tách bằng ‘:’ bên trong một tập hợp các dấu ngoặc nhọn ({ }) và đối tượng của bạn đã sẵn sàng để được phục vụ (hoặc tiêu thụ), như bên dưới:

const person = {
  firstName: 'testFirstName',
  lastName: 'testLastName'
};

Đây là cách đơn giản và phổ biến nhất để tạo đối tượng trong JavaScript.

2. Tạo đối tượng bằng từ khóa ‘new’

Phương pháp tạo đối tượng này giống với cách các đối tượng được tạo trong các ngôn ngữ dựa trên lớp, như Java. Nhân tiện, bắt đầu với ES6, các lớp cũng có nguồn gốc từ JavaScript và chúng ta sẽ xem xét việc tạo các đối tượng bằng cách định nghĩa các lớp ở cuối bài viết này. Vì vậy, để tạo một đối tượng bằng từ khóa ‘new’, bạn cần có một hàm tạo.

Đọc thêm  TypeError Chỉ số chuỗi phải là số nguyên Lỗi Python [Solved]

Dưới đây là 2 cách bạn có thể sử dụng mẫu từ khóa ‘mới’ —

a) Sử dụng từ khóa ‘mới’ với ‘hàm tạo Đối tượng dựng sẵn

Để tạo một đối tượng, hãy sử dụng từ khóa mới với Object() hàm tạo, như thế này:

const person = new Object();

Bây giờ, để thêm các thuộc tính cho đối tượng này, chúng ta phải làm như sau:

person.firstName="testFirstName";
person.lastName="testLastName";

Bạn có thể hình dung rằng phương pháp này sẽ mất nhiều thời gian hơn để gõ. Ngoài ra, phương pháp này không được khuyến nghị vì có một giải pháp phạm vi xảy ra đằng sau hậu trường để tìm xem hàm xây dựng được tích hợp sẵn hay do người dùng xác định.

b) Sử dụng ‘mới’ với hàm tạo do người dùng xác định

Vấn đề khác với cách tiếp cận sử dụng hàm tạo ‘Đối tượng’ xuất phát từ thực tế là mỗi khi chúng ta tạo một đối tượng, chúng ta phải thêm các thuộc tính vào đối tượng đã tạo theo cách thủ công.

Điều gì sẽ xảy ra nếu chúng ta phải tạo hàng trăm đối tượng người? Bạn có thể tưởng tượng nỗi đau bây giờ. Vì vậy, để loại bỏ việc thêm các thuộc tính vào các đối tượng theo cách thủ công, chúng tôi tạo các hàm tùy chỉnh (hoặc do người dùng xác định). Trước tiên, chúng tôi tạo một hàm tạo và sau đó sử dụng từ khóa ‘mới’ để lấy các đối tượng:

function Person(fname, lname) {
  this.firstName = fname;
  this.lastName = lname;
}

Bây giờ, bất cứ khi nào bạn muốn một đối tượng ‘Người’, chỉ cần làm điều này:

const personOne = new Person('testFirstNameOne', 'testLastNameOne');
const personTwo = new Person('testFirstNameTwo', 'testLastNameTwo');

3. Sử dụng Object.create() để tạo đối tượng mới

Mẫu này rất hữu ích khi chúng tôi được yêu cầu tạo các đối tượng từ các đối tượng hiện có khác và không trực tiếp sử dụng cú pháp từ khóa ‘mới’. Hãy xem cách sử dụng mẫu này. Như đã nêu trên MDN:

Các Object.create() phương thức tạo một đối tượng mới, sử dụng một đối tượng hiện có làm nguyên mẫu của đối tượng mới được tạo.

Để hiểu được Object.create phương pháp, chỉ cần nhớ rằng nó có hai tham số. Tham số đầu tiên là một đối tượng bắt buộc đóng vai trò là nguyên mẫu của đối tượng mới được tạo. Tham số thứ hai là một đối tượng tùy chọn chứa các thuộc tính sẽ được thêm vào đối tượng mới.

Đọc thêm  Tìm hiểu Xác thực biểu mẫu JavaScript – Xây dựng Dự án JS cho người mới bắt đầu ✨

Bây giờ chúng ta sẽ không đi sâu vào các nguyên mẫu và chuỗi thừa kế để tập trung vào chủ đề này. Nhưng tóm lại, bạn có thể nghĩ về các nguyên mẫu như các đối tượng mà từ đó các đối tượng khác có thể mượn các thuộc tính/phương thức mà chúng cần.

Hãy tưởng tượng bạn có một tổ chức được đại diện bởi orgObject

const orgObject = { company: 'ABC Corp' };

Và bạn muốn tạo nhân viên cho tổ chức này. Rõ ràng, bạn muốn tất cả các đối tượng nhân viên.

const employee = Object.create(orgObject, { name: { value: 'EmployeeOne' } });

console.log(employee); // { company: "ABC Corp" }
console.log(employee.name); // "EmployeeOne"

4. Sử dụng Object.assign() để tạo đối tượng mới

Nếu chúng ta muốn tạo một đối tượng cần có các thuộc tính từ nhiều đối tượng thì sao? Object.assign() đến để giúp đỡ của chúng tôi.

Như đã nêu trên MDN:

Các Object.assign() phương thức được sử dụng để sao chép các giá trị của tất cả các thuộc tính riêng có thể đếm được từ một hoặc nhiều đối tượng nguồn sang đối tượng đích. Nó sẽ trả về đối tượng mục tiêu.

Object.assign phương thức có thể lấy bất kỳ số lượng đối tượng nào làm tham số. Tham số đầu tiên là đối tượng mà nó sẽ tạo và trả về. Phần còn lại của các đối tượng được truyền cho nó sẽ được sử dụng để sao chép các thuộc tính vào đối tượng mới. Hãy hiểu nó bằng cách mở rộng ví dụ trước mà chúng ta đã thấy.

Đọc thêm  Thuộc tính trong javascript là gì? - JavaScript

Giả sử bạn có hai đối tượng như sau:

const orgObject = { company: 'ABC Corp' }
const carObject = { carName: 'Ford' }

Bây giờ, bạn muốn một đối tượng nhân viên của ‘ABC Corp’ lái xe ‘Ford’. Bạn có thể làm điều đó với sự giúp đỡ của Object.assign như sau:

const employee = Object.assign({}, orgObject, carObject);

Bây giờ, bạn nhận được một employee đối tượng có companycarName như tài sản của nó.

console.log(employee); // { carName: "Ford", company: "ABC Corp" }

5. Sử dụng các lớp ES6 để tạo đối tượng

Bạn sẽ nhận thấy rằng phương pháp này tương tự như sử dụng ‘new’ với hàm tạo do người dùng xác định. Các hàm tạo hiện được thay thế bằng các lớp khi chúng được hỗ trợ thông qua các đặc tả ES6. Hãy xem mã ngay bây giờ.

class Person {
  constructor(fname, lname) {
    this.firstName = fname;
    this.lastName = lname;
  }
}

const person = new Person('testFirstName', 'testLastName');

console.log(person.firstName); // testFirstName
console.log(person.lastName); // testLastName

Đây là tất cả những cách tôi biết để tạo đối tượng trong JavaScript. Tôi hy vọng bạn thích bài đăng này và giờ đã hiểu cách tạo đối tượng.

Cảm ơn thời gian của bạn để đọc bài viết này. Nếu bạn thích bài đăng này và nó hữu ích cho bạn, vui lòng nhấp vào vỗ tay ? nút để hiển thị hỗ trợ của bạn. Tiếp tục học hỏi thêm!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status