let dog = {
let dog = {
breed: ‘Border Collie’,
sound: ‘Wooh’,
getBreed: () => {
return this.breed;
},
getSound: function() {
return this.sound;
}
};
console.log(dog.getBreed(), dog.getSound());
Cho đoạn code sau. Kết quả là:
A. Border Collie, Wooh
B. Border Collie, undefined
C. undefined, Wooh
D. undefined, undefined
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
this trong một Arrow functions không được bind như trong một function bình thường mà this được thừa hưởng từ scope bên ngoài của nó (lexical scoping). Đó là lý do tại sao this trong function getBreed không phải là object dog mà là global object, ở trình duyệt là window object, nên this.breed trả về undefined.