Giải bài tập đầu buổi
Exercise 10 (Constructor method): Viết hàm tạo
Animal(name, sound) gán this.name, this.sound và method makeSound() in ra "${this.name} says {this.sound}" và method makeSound(). Tạo cat = new Animal("Mèo", "Meo) và dog = new Animal("Chó", "Gâu"). Gọi makeSound() cho cả 2.function Animal(name, sound) {
this.name = name;
this.sound = sound;
this.makeSound = function () {
console.log(`${this.name} says ${this.sound}`);
}
}const cat = new Animal("Mèo", "Meo");
const dog = new Animal("Chó", "Gâu");
cat.makeSound()
dog.makeSound()
1. Definitions (Định nghĩa)
Tìm hiểu nâng cao về tạo 1ObjectCác cách đã được học ở buổi 19, xem lại ở đây
- Cách 1 dùng Object Literals
const user = { } - Cách 2 dùng một cái Object Constructor
const user = new Object({}) - Cách 3 Function Constructor
function User (name) {
this.name = name;
}
const user = new User("John");
Hôm nay sẽ học cách thứ 4 đó là 3 phương thức có sẵn trong đối tượng
Object 1.1 Phương thức Object.assign()
Phương thức
Object.assign() này nó sẽ gôm các thuộc tính trong Object nguồn vào Object đích - nó gộp vào trừ phải sang trái và trả raconsole.log(Object.assign({}, {name: "Vũ Quốc Dũng", age: 27}));nếu như trùng thuộc tính thì nó sẽ ghi đè.Cách code bên trên tương tự cách trên nhưng là cách khó (Tham khảo cách viết ES6)
const userArr = [
{name: "Nguyễn Văn A", age: 23},
{
language: "JavaScript",
},
{
skill: "Soft Skill",
},
]
console.log(Object.assign({}, ...userArr));
1.2 Phương thức thứ 2 Object.create()
Cái
Object.create() nó sẽ tạo ra 1 Object mới, Object mới này sẽ có toàn bộ thuộc tính bên trong, nhưng in ra thì là 1 Object rỗng thôi nhưng truy cập giá trị thì vẫn có.const newUser = Object.create({
name: "Vũ Quốc Dũng",
age: 27,
})
console.log(newUser.name);
1.3 Phương thức Object.fromEntries()
const arr = [
["name", "Vũ Quốc Dũng"],
["age", 27],
["language", "JavaScript"],
["skill", "Soft Skill"]
];
console.log(Object.fromEntries(arr));
Nó sẽ lấy phần tử đầu tiên từng mảng con làm key và phần tử thứ 2 của từng mảng con làm value
Đây là các cách định nghĩa, các cách tạoObject. Giờ đây chúng ta sẽ sang họcThis nâng cao
2. This Advance (This nâng cao)
Hôm nay chúng ta sẽ học this trong Arrow function