Trong this article, nó nói rằng ActionScript 3.0 phù hợp với phiên bản ECMA thứ 4. Nhưng thay vì trông giống như JavaScript và không có lớp hoặc mở rộng, mã ActionScript 3.0 trông giống như Java và có tuyên bố class
và thậm chí có extend
?Nếu ActionScript dựa trên ECMAScript, tại sao nó có các lớp và trông gần như giống với Java?
Trả lời
Actionscript 3 được thiết kế trong khi thông số ECMA 4 vẫn đang được phát triển. Nó khác nhau; nó phù hợp với ECMA 4 nhưng vượt xa nó.
Actionscript đã tuân thủ ECMA ngay từ đầu.
Bạn có thể tưởng tượng javascript & ActionScript như một ngã ba từ một tiêu chuẩn đơn nghĩa ECMA, Với Javascript nghiêng để thêm sức mạnh cho các trình duyệt trong khi Actionscript hướng tới phát triển flash.
Có vẻ công bằng vì mỗi công ty cùng một lúc đều có giá thầu để tạo phiên bản riêng. Ví dụ: Hãy xem xét Microsoft's version của ECMA.
Bạn cũng có thể xem xét từ rất liên kết bạn chia sẻ rằng:
Để đối phó với nhu cầu sử dụng cho một ngôn ngữ trang bị tốt hơn cho các ứng dụng lớn hơn và phức tạp hơn, ActionScript 2.0 đặc trưng thời gian biên dịch kiểm tra kiểu và cú pháp dựa trên lớp học, chẳng hạn như lớp từ khóa và số mở rộng .
Vì vậy, bạn có thể thấy rằng hầu hết các thay đổi thực sự được người dùng điều khiển, chứ không phải là sự tương đồng ngẫu nhiên.
Nói chung, việc tuân thủ tiêu chuẩn không có nghĩa là chỉ các tính năng được xác định theo tiêu chuẩn phải có sẵn. Bạn có thể thực hiện một tiêu chuẩn để tuân thủ nhưng bạn cũng có thể thực hiện chức năng bổ sung.
Bạn có thể coi ECMA Script là một loại tập con xác định cấu trúc ngôn ngữ cơ bản, cú pháp và ngữ nghĩa. Sau đó, ECMA chỉ là một tập con của ActionScript. Ngôn ngữ thêm một loạt các tính năng cho tập hợp con này.
Ví dụ khác có thể là MySQL. Nó thực hiện các tiêu chuẩn SQL nhưng cung cấp nhiều chức năng hơn như tiêu chuẩn sẽ làm.
Bởi vì bản nháp ECMAScript phiên bản thứ 4 mà ActionScript 3 dựa trên có class
và extends
v.v.
http://en.wikipedia.org/wiki/ECMAScript#ECMAScript.2C_4th_Edition
http://www.ecma-international.org/activities/Languages/Language%20overview.pdf
Sau đó, dự thảo bản lần thứ 4 đã được thay thế bởi ECMAScript Harmony:
http://en.wikipedia.org/wiki/ECMAScript#History_2
Một số sẽ nói rằng lý do cho điều này là business politics, nhưng bạn sẽ phải để tạo thành ý kiến của riêng bạn về điều đó.
- 1. Tại sao .Net Dictionary trông giống như nó được sắp xếp?
- 2. Tại sao (gần như) tất cả các trò chơi trực tuyến được viết bằng ActionScript (Flash) chứ không phải Java?
- 3. Tại sao không trùng lặp mã QR trông giống nhau?
- 4. Làm các nút trông giống như các tab trong android
- 5. Tạo một bảng trông giống như Tkinter
- 6. Tại sao dòng đóng của Google này trông giống như vậy?
- 7. Đặt Hoạt động trên Android trông giống như hộp thoại
- 8. Nút trông giống như liên kết
- 9. Java - tại sao các lớp Hệ thống và Thời gian chạy có các phương thức giống hệt nhau?
- 10. C++ 0x - biểu thức lambda trông giống như lớp bên trong vô danh của Java?
- 11. Actionscript: Tại sao có thể gán một biến trước khi nó được khai báo?
- 12. Tại sao ActionScript không có "generics"?
- 13. Tại sao lịch sử git của tôi trông giống như một cây thông Noel?
- 14. Tại sao không có Object.setPrototypeOf (...) trong tiêu chuẩn ECMAScript?
- 15. Trên iOS, tại sao chiều cao của khung của khung nhìn vẫn gần như giống nhau sau khi xoay?
- 16. Tại sao Scala có các lớp học khi nó đã có các đặc điểm?
- 17. Tại sao nhà điều hành Sobel trông như vậy?
- 18. Tại sao đầu ra trông như thế này?
- 19. Tại sao REST không có WSDL không giống như SOAP
- 20. howto làm cho diff trông giống như svn diff?
- 21. Tại sao không có lớp java.lang.Array? Nếu một mảng java là một đối tượng, nó không nên mở rộng Object?
- 22. Thay đổi Theme.Dialog trông giống như Theme.Light.Dialog trong Android
- 23. Tại sao không có phương pháp forEach trên Object trong ECMAScript 5?
- 24. Tại sao một tệp Java có cùng tên với lớp công khai của nó?
- 25. Tại sao hình ảnh này trông xấu như vậy sau khi được thu nhỏ trong Java?
- 26. Lớp học giống như lớp
- 27. Tại sao trình biên dịch Java không giống như int nguyên thủy như kiểu cho các giá trị trong HashMap?
- 28. Lớp dựa trên QObject có kết nối xếp hàng với chính nó
- 29. Nếu == so sánh các tham chiếu trong Java, tại sao nó lại đánh giá đúng với các chuỗi này?
- 30. Định dạng TextView trông giống như liên kết