Môi trường và phạm vi từ vựng trong javascript một và cùng một thứ?Môi trường và phạm vi chức năng của Lexical
Trả lời
Đây là những gì spec nói về lexical environments:
Một môi trường từ vựng là một loại đặc điểm kỹ thuật sử dụng để xác định sự kết hợp của định danh cho các biến cụ thể và chức năng dựa trên cấu trúc làm tổ từ vựng mã ECMAScript. Một môi trường Lexical bao gồm một bản ghi môi trường và một tham chiếu có thể null đến một môi trường bên ngoài.
Dựa trên đó, tôi sẽ nói có, đó là những gì mọi người thường nói về khi họ nói "phạm vi".
Mặc dù nó có lẽ có thể lập luận rằng một "phạm vi" là thực sự được định nghĩa như là một "Declarative Environment Record":
Mỗi bản ghi môi trường tường thuật có liên quan đến phạm vi chương trình ECMAScript chứa khai báo biến và/hoặc chức năng. Một bản ghi môi trường khai báo liên kết bộ các định danh được xác định bởi các khai báo có trong phạm vi của nó.
Nếu bạn nghĩ về "phạm vi" như một thứ chứa các ràng buộc giữa số nhận dạng và giá trị, thì định nghĩa thứ hai có thể phù hợp hơn. Nếu bạn nghĩ về nó như một cái gì đó nhận thức được phạm vi tổ tiên của nó, thì định nghĩa đầu tiên phù hợp hơn.
Chỉnh sửa: và tùy chọn thứ ba là "Execution Context".
Môi trường Lexical là môi trường của hàm được viết. Đó là, thứ tự tĩnh/nơi nó nằm, bất kể nó được gọi từ đâu.
Phạm vi của một biến/chức năng về cơ bản là các vị trí mà từ đó một biến được hiển thị/có thể truy cập.
Ngữ cảnh thực thi là trạng thái của chồng thực thi tại bất kỳ thời điểm nào trong thời gian chạy. Đó là ngữ cảnh thực thi hiện tại.
- 1. Biểu thức hàm có môi trường phạm vi/từ vựng riêng của mình
- 2. jQuery và chức năng phạm vi
- 3. Greasemonkey Script và Chức năng Phạm vi
- 4. javascript chức năng phạm vi
- 5. Chức năng phạm vi Python
- 6. Phạm vi Lexical được triển khai như thế nào?
- 7. Phạm vi Lexical trong Emacs: khả năng tương thích với các Emacsen cũ hơn
- 8. Phạm vi chức năng Hiểu rõ ràng
- 9. lạ chức năng Python phạm vi hành vi
- 10. R: tạm thời trọng chức năng và phạm vi/namespace
- 11. Javascript mệnh đề catch phạm vi
- 12. Chức năng viết trong R, giữ phạm vi ghi nhớ
- 13. Phạm vi chức năng JavaScript giữa các thẻ tập lệnh
- 14. Trong MongoDB java driver Mapreduce phạm vi lệnh; Thêm chức năng vào Phạm vi
- 15. Phạm vi chức năng ẩn danh thông qua như là chức năng lập luận
- 16. Lựa chọn môi trường chức năng lồng nhau
- 17. Phạm vi biến bên ngoài chức năng jQuery
- 18. cách thêm các chức năng vào môi trường hiện tại
- 19. Phạm vi chức năng phần mềm trung gian trong express.js
- 20. Kết hợp hai kết quả chức năng phạm vi
- 21. Biến truy cập bên ngoài phạm vi chức năng
- 22. Chức năng phạm vi (min, max, value) trong Java
- 23. Phạm vi Javascript trong chức năng được tiêm
- 24. VIM: phạm vi dòng tùy chọn cho lệnh/chức năng
- 25. chức năng Nội đối phó với biến từ phạm vi
- 26. Biến truy cập từ phạm vi chức năng khác?
- 27. addEventListener và phạm vi của
- 28. Có phải đóng cửa vi phạm mô hình lập trình chức năng không?
- 29. Phạm vi của typedefs
- 30. php mail() chức năng thay đổi nhân vật và loại bỏ vi phạm trở lại
Định nghĩa thứ hai đề cập đến "phạm vi", do đó không thể là định nghĩa về "phạm vi". – OrangeDog
Có thể. Câu hỏi đặt ra là phạm vi "lập trình". Định nghĩa thứ hai sử dụng định nghĩa "bình thường" (từ điển nếu bạn muốn) tiếng Anh của phạm vi từ. – zenw0lf