Thêm phương thức vào class
Khi tạo object với thừa khóa new
thì object sẽ thừa kế thuộc tính prototype
của class. Nên chúng ta thêm các phương thức vô các prototype
này. Còn các thuộc tính chúng ta thêm vào ở constructor.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// tương đương class constructor
function Animal(name) {
// thêm các thuộc tính vào constructor
this.name = name;
}
// thêm phương thức vào prototype
Animal.prototype.sayHi = function() {
console.log(`Xin chào ${this.name}`);
};
var pet = new Animal("Teddy");
pet.sayHi(); // xin chào Teddy
var yourPet = new Animal("Toby");
yourPet.sayHi(); // xin chào Toby
|
Hàm static của class
Hàm static là một thuộc tính của class chứ không phải thuộc tính của prototype. Hàm này đi kèm với class chứ không phải object.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
function Animal(name) {
this.name = name;
}
// hàm thông thường
Animal.prototype.sayName = function() {
return `Xin chào ${this.name}`;
}
// hàm static
Animal.getName = function() {
return 'Tên tôi là Animal';
}
console.log(Animal.getName()); // Tên tôi là Animal
var myPet = new Animal('Billy');
console.log(myPet.sayName()); // Xin chào Billy
myPet.getName(); // Lỗi vì hàm này đi với class
|
Ví dụ hàm static mặc định của Javascript như hàm String.raw
hoặc hàm String.fromCharCode