Hàm tạo hàm JavaScript

Câu lệnh chức năng không phải là cách duy nhất để xác định một chức năng mới;

Lưu ý - Trình xây dựng là một thuật ngữ từ Lập trình hướng đối tượng. Lần đầu tiên bạn có thể không cảm thấy thoải mái, điều đó không sao cả

cú pháp

Sau đây là cú pháp để tạo một hàm sử dụng hàm tạo Function[] cùng với toán tử new

Hàm tạo Hàm [] mong đợi bất kỳ số lượng đối số chuỗi nào. Đối số cuối cùng là phần thân của hàm – nó có thể chứa các câu lệnh JavaScript tùy ý, được phân tách với nhau bằng dấu chấm phẩy

Lưu ý rằng hàm tạo Function[] không được truyền bất kỳ đối số nào chỉ định tên cho hàm mà nó tạo. Các hàm không tên được tạo bằng hàm tạo Function[] được gọi là các hàm ẩn danh

Bản tóm tắt. trong hướng dẫn này, bạn sẽ tìm hiểu về hàm tạo JavaScript và cách sử dụng từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2 để tạo một đối tượng

Giới thiệu về hàm tạo JavaScript

Trong hướng dẫn về đối tượng JavaScript, bạn đã học cách sử dụng cú pháp ký tự đối tượng để tạo một đối tượng mới

Ví dụ: phần sau tạo một đối tượng người mới với hai thuộc tính

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
3 và

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
4

let person = { firstName: 'John', lastName: 'Doe' };

Code language: JavaScript [javascript]

Trong thực tế, bạn thường cần tạo nhiều đối tượng giống nhau như đối tượng

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
5

Để làm điều đó, bạn có thể sử dụng hàm tạo để xác định loại tùy chỉnh và toán tử

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2 để tạo nhiều đối tượng từ loại này

Về mặt kỹ thuật, một hàm tạo là một hàm thông thường với quy ước sau

  • Tên của hàm tạo bắt đầu bằng chữ in hoa như

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    7,

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    8, v.v.
  • Hàm xây dựng chỉ nên được gọi với toán tử

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    2

Lưu ý rằng ES6 giới thiệu từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
00 cho phép bạn xác định loại tùy chỉnh. Và các lớp chỉ là đường cú pháp trên các hàm tạo với một số cải tiến

Ví dụ sau định nghĩa một hàm tạo có tên là

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2

Trong ví dụ này,

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 giống như một hàm thông thường ngoại trừ tên của nó bắt đầu bằng chữ in hoa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
03

Để tạo một phiên bản mới của

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7, bạn sử dụng toán tử

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]

Về cơ bản, toán tử

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2 thực hiện như sau

  • Tạo một đối tượng trống mới và gán nó cho biến

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    07
  • Gán các đối số

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    08 và

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    09 cho các thuộc tính

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    3 và

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    4 của đối tượng
  • Trả về giá trị

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    07

Nó có chức năng tương đương như sau

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
0

Do đó, tuyên bố sau đây

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]

… trả về kết quả tương tự như câu lệnh sau

let person = { firstName: 'John', lastName: 'Doe' };

Code language: JavaScript [javascript]

Tuy nhiên, hàm tạo

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 cho phép bạn tạo nhiều đối tượng giống nhau. Ví dụ

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
9

Thêm phương thức vào hàm tạo JavaScript

Một đối tượng có thể có các phương thức thao tác dữ liệu của nó. Để thêm một phương thức vào một đối tượng được tạo thông qua hàm tạo, bạn có thể sử dụng từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
07. Ví dụ

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
1

Bây giờ, bạn có thể tạo một đối tượng

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 mới và gọi phương thức

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
6

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
4

đầu ra

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
5

Vấn đề với hàm tạo là khi bạn tạo nhiều phiên bản của

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7, thì

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
8 sẽ bị trùng lặp trong mọi phiên bản, điều này không hiệu quả về bộ nhớ

Để giải quyết vấn đề này, bạn có thể sử dụng nguyên mẫu để tất cả các phiên bản của loại tùy chỉnh có thể chia sẻ cùng một phương thức

Trả về từ hàm tạo

Thông thường, hàm tạo hoàn toàn trả về

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
07 được đặt cho đối tượng mới được tạo. Nhưng nếu nó có câu lệnh

let person = { firstName: 'John', lastName: 'Doe' };

Code language: JavaScript [javascript]
0, thì đây là các quy tắc

  • Nếu

    let person = { firstName: 'John', lastName: 'Doe' };

    Code language: JavaScript [javascript]
    0 được gọi với một đối tượng, hàm tạo sẽ trả về đối tượng đó thay vì

    let person = new Person['John','Doe'];

    Code language: JavaScript [javascript]
    07
  • Nếu

    let person = { firstName: 'John', lastName: 'Doe' };

    Code language: JavaScript [javascript]
    0 được gọi với một giá trị không phải là một đối tượng, nó sẽ bị bỏ qua

Gọi một hàm xây dựng không có từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2

Về mặt kỹ thuật, bạn có thể gọi một hàm tạo giống như một hàm thông thường mà không cần sử dụng từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2 như thế này

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
20

Trong trường hợp này,

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 chỉ thực thi như một chức năng thông thường. Do đó,

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
07 bên trong hàm

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 không liên kết với biến

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
5 mà là đối tượng toàn cầu

Nếu bạn cố truy cập thuộc tính

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
3 hoặc

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
4, bạn sẽ gặp lỗi

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
21

Lỗi

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
22

Tương tự, bạn không thể truy cập phương thức

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
6 vì nó bị ràng buộc với đối tượng toàn cầu

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
23

Lỗi

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
24

Để ngăn hàm tạo được gọi mà không có từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2, ES6 đã giới thiệu thuộc tính

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
94

Nếu một hàm xây dựng được gọi với từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2, thì

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
96 trả về một tham chiếu của hàm. Nếu không, nó sẽ trả về

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
97

Phần sau đây thêm một câu lệnh bên trong hàm

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 để hiển thị

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
96 cho bảng điều khiển

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
25

Hàm sau trả về

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
97 vì hàm tạo

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 được gọi như một hàm thông thường

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
26

đầu ra

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
27

Tuy nhiên, phần sau đây trả về một tham chiếu đến hàm

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 vì nó được gọi với từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
28

đầu ra

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
29

Bằng cách sử dụng

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
96, bạn có thể buộc người gọi hàm tạo sử dụng từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2. Nếu không, bạn có thể đưa ra một lỗi như thế này

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
0

Ngoài ra, bạn có thể làm cho cú pháp linh hoạt hơn bằng cách tạo một đối tượng

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
7 mới nếu người dùng hàm tạo không sử dụng từ khóa

let person = new Person['John','Doe'];

Code language: JavaScript [javascript]
2

Trình xây dựng hàm trong JavaScript là gì?

Hàm tạo là một hàm đặc biệt dùng để tạo và khởi tạo một thể hiện đối tượng của một lớp . Trong JavaScript, hàm tạo được gọi khi một đối tượng được tạo bằng từ khóa mới. Mục đích của hàm tạo là tạo đối tượng mới và đặt giá trị cho bất kỳ thuộc tính đối tượng hiện có nào.

Bạn có thể gọi một hàm trong hàm tạo JavaScript không?

Có, có thể , khi hàm xây dựng của bạn thực thi, giá trị này đã có thuộc tính bên trong [[Prototype]] trỏ đến Trường xác thực.

Bạn có thể đặt các chức năng trong hàm tạo không?

Gọi hàm tạo trực tiếp có thể tự động tạo các hàm , nhưng gặp phải các vấn đề về bảo mật và hiệu suất tương tự [nhưng ít quan trọng hơn] như eval[]. Tuy nhiên, không giống như eval [có thể có quyền truy cập vào phạm vi cục bộ], hàm tạo Hàm tạo các hàm chỉ thực thi trong phạm vi toàn cầu.

Làm cách nào để tạo một hàm với hàm tạo hàm JavaScript?

// sử dụng hàm tạo function Person [] { this. name = 'Sam' } let person1 = new Person[]; . // adding new property to person1 person1.

Chủ Đề