Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Hiểu về Function Scope và Context trong JavaScript

Context (bối cảnh) và Scope (phạm vi) khác nhau trong JavaScript. Việc gọi hàm (function invocation) có cả scope lẫn context.

Scope (Phạm vi)

Phạm vi của biến là vùng trong chương trình mà biến đó được định nghĩa. JS biến chỉ có 2 scope:

  • Global Variable: Phạm vi toàn cục, truy cập đâu cũng được trong code JS.
  • Local Variable: Chỉ nhìn thấy trong hàm nơi nó được định nghĩa. Tham số hàm luôn local đến hàm đó.

Context (Bối cảnh)

Context thể hiện cách một hàm được gọi. Ví dụ:

var ob1 = {
  display: function() {
    return this;
  }
};
ob1.display() === ob1; // true

Trên trả về true khi gọi hàm như một phương thức của đối tượng. Chúng ta thấy this context được thiết lập là đối tượng mà phương thức được gọi trên nó.

Mở rộng: call(), apply(), bind() cho phép thay đổi this context. Arrow function không có this riêng, kế thừa từ scope cha.