⊗jsPmCxUFC 434 of 505 menu

Ngữ cảnh của hàm không được ràng buộc trong JavaScript

Hãy cùng xem điều gì sẽ xảy ra nếu chúng ta chỉ định this trong một hàm mà không ràng buộc nó với bất kỳ phần tử nào, như thế này:

function func() { console.log(this); } func();

Trong trường hợp này, kết quả phụ thuộc vào việc chúng ta đang ở chế độ nghiêm ngặt hay không. Nếu không ở chế độ nghiêm ngặt, thì this sẽ chứa tham chiếu tới window:

function func() { console.log(this); // tham chiếu tới cửa sổ window } func();

Còn nếu ở chế độ nghiêm ngặt, thì this sẽ chứa undefined:

"use strict"; function func() { console.log(this); // undefined } func();

Từ những điều trên, có thể nghĩ rằng trong chế độ nghiêm ngặt this sẽ luôn là undefined. Không phải vậy! Nếu chỉ đơn giản in this ra bên ngoài hàm, thì nó sẽ là tham chiếu tới window bất kể chế độ nào:

"use strict"; console.log(this); // trong this là tham chiếu tới window

Kết luận

Trong bất kỳ hàm nào, chúng ta cũng có thể viết this, điều này sẽ không dẫn đến bất kỳ lỗi JavaScript nào. Nhưng cái sẽ nằm trong this đó không được xác định cho đến thời điểm hàm được gọi. Hơn nữa, với các lần gọi hàm khác nhau, this có thể nhận các giá trị khác nhau. Tất cả phụ thuộc vào ngữ cảnh mà hàm được gọi.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối