const user = {}; // object literal
const user = new Object({});
function User(name) {
// this.name = name;
}
const user = new User();
// Hôm nay sẽ học cách thứ 4
console.dir(Object)
// phương thức asign cũng có thể tạo object
// create cũng tạo object
// entries cũng tạo object
// Làm quen với assign
console.log(Object.assign({langueage: "JavaScript"}, {name: "Nguyễn Thành Thiên", age: 27}))Tiếp theo // create cũng tạo object
name: "Nguyễn Văn A",
age: 20,
});
console.log(newUser) Tiếp tục const newUser = Object.create( {
const arr = ["name", "Nguyễn Văn A", age:20],
["age", 20]
//Tạo object console.log(Object.fromEntries(arr));
Nó sẽ lấy phần tử đầu tiên làm key và phần tử thứ 2 sẽ làm value
const user = {
name: "Nguyễn Văn A",
age: 20,
intro: () => {
console.log(this);
}
};
Nếu this đó định nghĩa arrow function nó không có this riêng nó sẽ mượn this ngữ cảnh bên ngoài, this nó sẽ là this global (là window)
function thường gọi theo cách thông thường sẽ là window const user = {
name: "Nguyễn Văn A",
age: 20,
intro: function () {
console.log(this);
}
};const func = user.intro
- Gọi trực tiếp thì this trỏ tới window
- Gọi qua object thì this trỏ tới object đó
- this trong arrown function không có, xác định qua cách viết
- Nó mượn this từ context bên ngoài
bind
function greeting(a, b) {
console.log(this);
console.log("hello")
}
const newGreeting = greeting.bind{ say: "Hi"} );
newGreeting()
bind thì gọi bình thường this trong fujnction nhận giá trị đối số truyền vào bind
call
function greeting(a, b) {
console.log(this);
console.log("hello")
}
greeting.call({say: "Hi" },1 ,2);
đối số đăng số đằng sau là tham số đăng sau truyền vào hàm
apply
function greeting(a, b) {
console.log(this);
console.log("hello")
}
greeting.apply({say: "Hi", [1, 2]});
Apply giống ở call mà nó nhận đối số thứ hai là mảng
=> Đều là 3 phương thức của function nó dùng để gán this cho functionbind, call và apply đượcKỹ thuật mượn hàm
const user1 = {
name: "Nguyễn Văn A",
age: 20,
intro: function () {
console.log(Xin choà, tôi là ${this.name}, ${this.age} tuổi);
},
}
const user2 = {
name: "Nguyễn Văn B",
AGE: 30,
};
user.intro.call(user2);
const arr = [1, 2, 3, 4, 5];
const user = {
name: "Nguyễn Văn A",
age: 20,
points: [10, 20, 30],
intro: function () {
this.points.forEach(point => {
console.log(${this.name} có ${point} điểm);
}
)
}
}