Câu hỏi phỏng vấn Javascript
Câu hỏi

Con trỏ this trong javascript là gì?

Câu trả lời

Con trỏ this trong JavaScript được dùng để tham chiếu đến đối tượng mà nó thuộc về, hay nói cách khác, this đại diện cho ngữ cảnh mà đoạn mã đang được thực thi. Trong JavaScript, giá trị của this không cố định mà phụ thuộc vào cách mà hàm hoặc phương thức được gọi

Cách hoạt động của this

  • Khi một hàm được gọi như là một phương thức của một đối tượng, this tham chiếu đến đối tượng đó
  • Khi một hàm được gọi mà không phải là một phương thức của đối tượng, this tham chiếu đến đối tượng global, tức là window trong trình duyệt và global trong Node.js. Tuy nhiên, trong strict mode, this sẽ là undefined
  • Trong các hàm mũi tên (arrow functions), this được "bắt" từ ngữ cảnh bên ngoài hàm mũi tên, tức là nó không có this riêng mà sử dụng this từ ngữ cảnh bên ngoài của nó

Ví dụ về this

javascript Copy
const person = {
  name: "Alice",
  greet: function() {
    console.log("Hello, " + this.name);
  }
};

person.greet(); // "Hello, Alice" - `this` tham chiếu đến đối tượng `person`

Trong trường hợp hàm được gọi không thông qua một đối tượng:

javascript Copy
function showName() {
  console.log(this.name);
}

const user = { name: "Bob" };
window.name = "GlobalName";

showName(); // "GlobalName" - `this` tham chiếu đến `window` trong trình duyệt

Sử dụng this trong các trường hợp đặc biệt

  • Khi sử dụng this trong một hàm callback hoặc một hàm được truyền như một tham số, giá trị của this có thể không phải là như mong đợi. Trong trường hợp này, các phương thức như bind, call, và apply có thể được sử dụng để rõ ràng xác định giá trị của this

Tóm lại

this là một từ khóa quan trọng trong JavaScript, giúp xác định ngữ cảnh thực thi của mã. Hiểu rõ cách this hoạt động là cần thiết để viết mã chính xác và tránh các lỗi không mong muốn liên quan đến ngữ cảnh thực thi.

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Giải thích cách hoạt động của JSONP và tại sao nó không thực sự là Ajax?

middle

Kết quả đoạn code sau là gì? Hãy giải thích tại sao?

junior

Hàm anonymous là gì và khi nào nên sử dụng?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào