Chào các bạn, hôm nay anh sẽ hướng dẫn mọi người về cách khai báo và sử dụng Class của ES6. Lần lượt giới thiệu và giải thích khái niệm và ví dụ về For of của ES6 là gì?
Trước khi có cách viết Class mới trong ES6, thì để tạo một class trong Javascript ta khai báo theo cách như sau
1
2
3
4
5
6
7
8
9
10
function Animal(type) {
this.type = type;
}
Animal.prototype.identify = function() {
console.log(this.type);
}
var cat = new Animal('Cat');
cat.identify(); // Cat
Chúng ta sử dụng function và prototype để tạo ra các đối tượng và thuộc tính cho một đối tượng.
Trong ES6 chúng ta tạo class và đối tượng một cách tường minh hơn bằng cách sử dụng từ khoá class để khai báo class, sử dụng từ khoá constructor để khai báo hàm dựng như sau.
1
2
3
4
5
6
7
8
9
10
11
class Animal {
constructor(type) {
this.type = type;
}
identify() {
console.log(this.type);
}
}
let cat = new Animal('Cat');
cat.identify();
Chúng ta sử dụng instance of để kiểm tra xem đối tượng đó có phải là đối tượng chúng ta mong muốn không, có đúng kiểu dữ liệu ta yêu cầu không.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let Animal = class {
constructor(type) {
this.type = type;
}
identify() {
console.log(this.type);
}
}
let duck = new Animal('Duck');
console.log(duck instanceof Animal); // true
console.log(duck instanceof Object); // true
console.log(typeof Animal); // function
console.log(typeof Animal.prototype); // function
Chúng ta sử dụng từ khoá get và set để thực hiện việc lấy giá trị và set giá trị của đối tượng như sau.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Person {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
get fullName() {
return this.firstName + ' ' + this.lastName;
}
set fullName(str) {
let names = str.split(' ');
if (names.length === 2) {
this.firstName = names[0];
this.lastName = names[1];
} else {
throw 'Invalid name format';
}
}
}
let mary = new Person('Mary', 'Doe');
console.log(mary.fullName); // Mary Doe