Đối tượng Kích hoạt trong JavaScript là gì?


13

Trong một bối cảnh thực thi nhất định, đối tượng Biến là đối tượng Kích hoạt của bối cảnh thực thi đó.

Từ nghiên cứu trực tuyến của tôi, tôi có thể tìm thấy câu trước được chia sẻ lại theo những cách khác nhau nhưng không ai có thể nói nó là gì.

Một đối tượng kích hoạt là gì?


Một đối tượng kích hoạtđối tượng cao nhất trong chuỗi phạm vi với đối tượng toàn cầu thấp nhất . Xem câu trả lời này để biết thêm chi tiết.
ikaruss

Câu trả lời:


17

Hãy để tôi bắt đầu từ gốc rễ ...

Bối cảnh thực thi là một đối tượng bao gồm:

  • đối tượng biến, là đối tượng kích hoạt trong trường hợp hàm
  • chuỗi phạm vi, mà bạn có thể nghĩ là một danh sách liên kết của phạm vi bên ngoài
  • this giá trị

Đối tượng biến là một điều trừu tượng, có thể là một trong những điều sau:

  • đối tượng toàn cầu (trong bối cảnh toàn cầu) - nơi mà vars toàn cầu (như window, documenthoặc consoletrong một trình duyệt) cư trú
  • đối tượng kích hoạt (đối với các hàm xác định phạm vi trong ECMAScript)

Đối tượng kích hoạt là một đối tượng chứa:

  • đối số chính thức của chức năng
  • arguments đối tượng cho chức năng này
  • bất kỳ hàm và hàm (tên) nào bên trong hàm này

Vì vậy, đối tượng kích hoạt chỉ là một trường hợp đặc biệt của đối tượng biến.

Về cơ bản, nó là một thùng chứa cho tất cả những thứ cục bộ mà bạn có thể truy cập bằng tên bên trong một hàm, ngoại trừ this. Tôi có thể không chính xác ở đây, nhưng đó là những gì tôi nghĩ rằng nó là.

Giải thích thêm với một số hình ảnh đẹp:


2

Đối tượng Kích hoạt là đối tượng được sử dụng để giữ các thuộc tính mô tả môi trường và phạm vi của hàm thực thi. Đó là trên đối tượng này, ví dụ chức năng, được lưu trữ. Theo định nghĩa, để HOẠT ĐỘNG một cái gì đó là làm cho điều đó hành động hoặc CHỨC NĂNG. Vì vậy, khi bạn nghe thấy 'Đối tượng kích hoạt', hãy nghĩ đối tượng 'CHỨC NĂNG' hoặc tốt hơn là đối tượng gốc nằm ở vị trí LỘC cho một chức năng (ví dụ: ĐỐI TƯỢNG ĐỊA ĐIỂM CHỨC NĂNG).

Liên quan đến đối tượng Biến, một đối tượng Kích hoạt ít nhiều là một thể hiện cụ thể của một đối tượng Biến, chính nó (tham chiếu đến đối tượng Biến ở đây) một loại đối tượng ABSTRACT. Như đã nói ở đây ...

Thuật ngữ 'Đối tượng biến' là một thuật ngữ chung hoặc trừu tượng được sử dụng để chỉ bất kỳ đối tượng nào có các thuộc tính mô tả môi trường và phạm vi của bối cảnh hiện đang thực thi.

Do đó, trong môi trường và phạm vi của bối cảnh thực thi toàn cục (nghĩa là khi nằm ngoài hàm), đối tượng Toàn cầu là đối tượng Biến. Trong trình duyệt, vì môi trường thực thi toàn cầu hoặc ngoài cùng là trình duyệt WINDOW, nó là windowđối tượng cuối cùng được sử dụng làm đối tượng Biến. Đây là lý do tại sao các biến được khai báo với vartừ khóa bên ngoài các hàm kết thúc trên windowđối tượng.

Tuy nhiên, trong phạm vi của một hàm, đối tượng Kích hoạt (tức là đối tượng cục bộ của hàm) là đối tượng biến vì nó là đối tượng được sử dụng để lưu trữ các thuộc tính mô tả phạm vi của hàm thực thi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.