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
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
1Mụ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
Điều gì xảy ra khi một nhà xây dựng được gọi?
Khi một hàm tạo được gọi trong JavaScript, chuỗi hoạt động sau đây sẽ diễn ra
- Một đối tượng trống mới được tạo
- Từ khóa
2 bắt đầu tham chiếu đến đối tượng mới và nó trở thành đối tượng thể hiện hiện tại//Constructor function User[] { this.name = 'Bob'; } var user1 = new User[]; var user2 = new User[];
- Đối tượng mới sau đó được trả về dưới dạng giá trị trả về của hàm tạo
Ví dụ về Trình tạo JavaScript
Dưới đây là một số ví dụ về hàm tạo trong JavaScript
Sử dụng từ khóa "này"
Khi từ khóa
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
2 được sử dụng trong hàm tạo, nó đề cập đến đối tượng mới được tạo//Constructor
function User[] {
this.name = 'Bob';
}
var user = new User[];
Tạo nhiều đối tượng
Trong JavaScript, nhiều đối tượng có thể được tạo trong một hàm tạo
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
Trong ví dụ trên, hai đối tượng được tạo bằng cùng một hàm tạo
Constructor với tham số
Một hàm tạo cũng có thể có các tham số
//Constructor
function User [name, age] {
this.name = name;
this.age = age;
}
var user1 = new User['Bob', 25];
var user2 = new User['Alice', 27];
Trong ví dụ trên, các đối số được truyền cho hàm tạo trong quá trình tạo đối tượng. Điều này cho phép mỗi đối tượng có các giá trị thuộc tính khác nhau
Trình xây dựng so với đối tượng theo nghĩa đen
Một đối tượng bằng chữ thường được sử dụng để tạo một đối tượng trong khi hàm tạo rất hữu ích để tạo nhiều đối tượng
//Object literal
let user = {
name: 'Bob'
}
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
Mỗi đối tượng được tạo bằng hàm tạo là duy nhất. Các thuộc tính có thể được thêm hoặc xóa khỏi một đối tượng mà không ảnh hưởng đến một đối tượng khác được tạo bằng cùng một hàm tạo. Tuy nhiên, nếu một đối tượng được tạo bằng cách sử dụng một đối tượng theo nghĩa đen, thì bất kỳ thay đổi nào được thực hiện đối với biến được gán giá trị đối tượng sẽ thay đổi đối tượng ban đầu
Nguyên mẫu đối tượng
Các thuộc tính và phương thức có thể được thêm vào hàm tạo bằng nguyên mẫu
//Constructor
function User[] {
this.name = 'Bob';
}
let user1 = new User[];
let user2 = new User[];
//Adding property to constructor using prototype
User.prototype.age = 25;
console.log[user1.age]; // 25
console.log[user2.age]; // 25
Trong ví dụ trên, hai đối tượng
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
1 được tạo bằng hàm tạo. Một thuộc tính mới //Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
2 sau đó được thêm vào hàm tạo bằng cách sử dụng một nguyên mẫu, được chia sẻ trên tất cả các phiên bản của đối tượng //Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
1
Trình xây dựng tích hợp
JavaScript có một số hàm tạo tích hợp, bao gồm các hàm sau
var a = new Object[];
var b = new String[];
var c = new String['Bob']
var d = new Number[];
var e = new Number[25];
var f = new Boolean[];
var g = new Boolean[true];
Mặc dù các hàm tạo này tồn tại, nhưng nên sử dụng các kiểu dữ liệu nguyên thủy nếu có thể, chẳng hạn như
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
0Các chuỗi, số và booleans không nên được khai báo là các đối tượng vì chúng cản trở hiệu suất
Theo dõi, phân tích và quản lý lỗi với Rollbar
Quản lý lỗi và ngoại lệ trong mã của bạn là một thách thức. Nó có thể làm cho việc triển khai mã sản xuất trở thành một trải nghiệm đáng sợ. Khả năng theo dõi, phân tích và quản lý lỗi trong thời gian thực có thể giúp bạn tiến hành một cách tự tin hơn. Rollbar tự động theo dõi và xử lý lỗi, giúp việc sửa lỗi Java trở nên dễ dàng hơn bao giờ hết. Đăng ký hôm nay
Phương thức
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
4 là một phương thức đặc biệt để tạo và khởi tạo các đối tượng được tạo trong một lớpPhương thức
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
4 được gọi tự động khi một lớp được bắt đầu và nó phải có tên chính xác là "hàm tạo", trên thực tế, nếu bạn không có phương thức tạo, JavaScript sẽ thêm một phương thức tạo vô hình và trốngGhi chú. Một lớp không thể có nhiều hơn một phương thức constructor[]. Điều này sẽ ném một
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
6Bạn có thể sử dụng phương thức
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
7 để gọi hàm tạo của lớp cha [xem phần "Ví dụ khác" bên dưới]Hỗ trợ trình duyệt
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
4 là một tính năng của ECMAScript6 [ES6]ES6 [JavaScript 2015] được hỗ trợ trong tất cả các trình duyệt hiện đại
ChromeEdgeFirefoxSafariOperaCóCóCóCóCó//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
4 không được hỗ trợ trong Internet Explorer 11 [hoặc cũ hơn]cú pháp
chi tiết kỹ thuật
Phiên bản JavaScript. ECMAScript 2015 [ES6]Thêm ví dụ
Để tạo kế thừa lớp, hãy sử dụng từ khóa
//Constructor
function User [name, age] {
this.name = name;
this.age = age;
}
var user1 = new User['Bob', 25];
var user2 = new User['Alice', 27];
0Một lớp được tạo bằng kế thừa lớp kế thừa tất cả các phương thức từ lớp khác
Ví dụ
Tạo một lớp có tên là "Mô hình" sẽ kế thừa các phương thức từ lớp "Xe hơi"
class Xe {
constructor[brand] {
this. carname = brand;
}
present[] {
return 'I have a ' + this. carname;
}
}
class Mô hình mở rộng Ô tô {
constructor[brand, mod] {
super[brand];
this. model = mod;
}
show[] {
trả lại cái này. hiện tại [] + ', nó là ' + cái này. mô hình;
}
}
mycar = new Model["Ford", "Mustang"];
tài liệu. getElementById["bản trình diễn"]. bên trongHTML = xe của tôi. show[];
Tự mình thử »
Phương thức
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
7 đề cập đến lớp chaBằng cách gọi phương thức
//Constructor
function User[] {
this.name = 'Bob';
}
var user1 = new User[];
var user2 = new User[];
7 trong phương thức khởi tạo, chúng ta gọi phương thức khởi tạo của cha mẹ và có quyền truy cập vào các thuộc tính và phương thức của cha mẹ