Tôi đã tự hỏi làm thế nào các đối tượng được thực hiện dưới mui xe trong các công cụ Javascript (V8, Spidermonkey, vv). Họ thực sự chỉ là Bảng băm? Nếu vậy, làm thế nào để họ xử lý va chạm?Dưới mui xe, là các bảng băm đối tượng Javascript?
Trả lời
Trước hết, câu trả lời có thể hơi khác với các công cụ JS khác nhau. Ngoài ra, tôi giả sử bạn đang yêu cầu cụ thể về việc lưu trữ thuộc tính; rõ ràng các đối tượng có một bó của nhà nước khác quá (liên kết chuỗi nguyên mẫu là một rõ ràng). Trong trường hợp Spidermonkey, các đối tượng về cơ bản có một danh sách liên kết các cặp (propname, infromation about property), cho đến khi chúng có quá nhiều thuộc tính, khi tôi tin rằng chúng vẫn giữ danh sách liên kết (vì thứ tự quan trọng đối với các thuộc tính trong JS). trong thực tế) nhưng thêm một hashtable ngoài băng mà ánh xạ các tên thuộc tính cho các mục trong danh sách liên kết.
Cũng có thể có các lý do khác để chuyển sang thẻ bắt đầu bằng #; các chi tiết chưa chính xác được cố định theo thời gian và có thể sẽ thay đổi trong tương lai.
Danh sách liên kết và hashtables thực sự được chia sẻ trên các đối tượng; miễn là hai đối tượng có cùng tên thuộc tính và thông tin thuộc tính corresonding (không bao gồm giá trị, cho thuộc tính có giá trị được lưu trữ) và thuộc tính được đặt theo cùng thứ tự, chúng có thể chia sẻ danh sách liên kết thuộc tính.
Giá trị thuộc tính thực, khi được lưu trữ, được lưu trong một mảng trong đối tượng (hoặc chính xác hơn, hai mảng; một mảng được gán nội tuyến với đối tượng có kích thước cố định tại thời điểm tạo đối tượng, một được phân bổ động và thay đổi kích thước khi cần thiết cho các thuộc tính được thêm vào sau).
Có chúng là các bảng băm. Tuy nhiên, tôi không hiểu phần va chạm của bạn, vui lòng giải thích phần thứ hai của câu hỏi của bạn
- 1. Thừa kế dưới mui xe
- 2. Hoạt động nguyên tử: dưới mui xe
- 3. PHP đàn() - những gì dưới mui xe?
- 4. Làm thế nào để memchr() làm việc dưới mui xe?
- 5. SignalR.Redis hoạt động như thế nào dưới mui xe?
- 6. Hiểu EF dưới mui xe. Bao gồm vs tham gia
- 7. Rails 3 ActiveRecord phương pháp chaining, dưới mui xe
- 8. Touchstart và Nhấp. Điều gì xảy ra dưới mui xe?
- 9. Cách hoạt ảnh của UIView với các khối hoạt động dưới mui xe
- 10. Máy ảo Flash sử dụng gì dưới mui xe để vẽ?
- 11. Tín hiệu và khe được thực hiện dưới mui xe như thế nào?
- 12. Lập trình hướng sự kiện Win32 được thực hiện như thế nào dưới mui xe?
- 13. Điều gì xảy ra dưới mui xe khi chúng tôi thực hiện presentViewController?
- 14. Làm thế nào để IEnumerable khác với IObservable dưới mui xe?
- 15. Làm thế nào để so sánh chuỗi Perl dưới mui xe?
- 16. Notepad làm gì khác biệt dưới mui xe so với lệnh IN?
- 17. Giá trị cập nhật của FormView EditTemplate trong ObjectDataSource UpdateParameters dưới mui xe như thế nào?
- 18. Làm thế nào để một công việc có thể gọi dưới mui xe? Làm cách nào để một đối tượng có thể gọi trả về một giá trị?
- 19. Các tham số tùy chọn VB.NET hoạt động như thế nào 'Dưới mui xe'? Họ có tuân thủ CLS không?
- 20. Ánh xạ các đối tượng tùy chỉnh dưới dạng bảng đến các bảng
- 21. Loại đối tượng nào hiển thị trong bảng điều khiển dưới dạng [đối tượng văn bản]?
- 22. Các đối tượng JSP, JavaScript và Java
- 23. Đối tượng làm khóa băm
- 24. Hàm băm SHA1 trong Delphi XE
- 25. Http và tải lên tập tin - Làm thế nào nó thực sự hoạt động (dưới mui xe)
- 26. Javascript: diễn giải chuỗi dưới dạng tham chiếu đối tượng?
- 27. Đối tượng tùy chỉnh Javascript là Generic
- 28. Chuỗi Javascript không phải là đối tượng?
- 29. Các khóa đối tượng biến Javascript
Xem câu trả lời này http://stackoverflow.com/a/6602088/8338 –
bản sao có thể có của [JavaScript VM triển khai quyền truy cập thuộc tính đối tượng như thế nào? Có phải Hashtable?] (Http://stackoverflow.com/questions/6586670/how-does-javascript-vm-implements-object-property-access-is-it-hashtable) – Newtang