Tôi đang học về mô-đun trực tuyến và có vẻ như các mô-đun trong js và các lớp trong php rất giống nhau. Cả hai nhóm hoạt động cùng nhau để dễ hiểu mã hóa hơn. Các hàm có thể được khai báo trong cả hai và được công khai hoặc riêng tư. Chúng tương tự như thế nào khi sử dụng và chúng khác nhau như thế nào?Sự khác biệt giữa Mô-đun trong js và Lớp học trong php là gì?
Trả lời
module Javascript của cung cấp một số tính năng tốt đẹp như đóng gói, nhà nước tư nhân và thậm chí thừa kế từ các module khác. Trong khi chúng cung cấp một số tính năng của các lớp, như trong PHP, chúng không có. Họ cố gắng xây dựng trên functonality Javascript hiện có để mô phỏng các lớp, do đó tại sao sự nhầm lẫn. tức là chúng được được thiết kế để trông giống như lớp học.
module Javascript của là trường hợp của một chức năng vô danh được gán cho một biến. Do đó họ có tất cả các tính năng của một chức năng mà mã của họ được thực hiện trên xuống dưới, họ có và đôi khi sử dụng một tuyên bố trở (trong lớp học PHP không báo cáo có thể chạy trực tiếp ngoài định nghĩa lĩnh vực và phân công) và họ thậm chí có truy cập vào các biến toàn cầu. Trong PHP, mặt khác một lớp, hay đúng hơn là các phương thức của nó, không thể truy cập một biến không nằm trong chính lớp đó. Để truy cập vào các biến toàn cục, một phương thức lớp hoặc hàm tĩnh phải gọi biến đó một cách rõ ràng, tức là theo thứ tự global $a
để nhập nó. Trong các mô-đun js, tất cả các vars toàn cầu đều có thể truy cập được nhưng đôi khi người ta chọn giải thích việc nhập khẩu chúng cho mã neater (function(a){})(imported);
Một vấn đề quan trọng khác là trừu tượng dữ liệu. Trong khi các mô-đun js cung cấp các trạng thái riêng cho các trường, các lớp của PHP, giống như C++, java, python, vv, cung cấp bảo mật hơn cho các thuộc tính. Nó cho phép các lớp cơ sở sử dụng các từ khóa abstract class
và interface
theo đó các phương pháp và thuộc tính lớp học chỉ được xác định hoặc có cấu trúc nhưng không được sử dụng.
lớp PHP cũng có constructor và destructor, được gọi khi đối tượng lớp được khởi tạo và trên đề cập đến cuối cùng sử dụng để tiêu diệt các đối tượng. Cấp, bạn có thể tạo các hàm trong các mô-đun để chạy khi bạn muốn, trong PHP, mặt khác, các hàm trong phương thức chỉ được thực thi khi chúng được gọi bởi đối tượng, lớp hoặc các hàm khác.
Trong lớp có chức năng tĩnh, chúng có thể được gọi mà không hề có một đối tượng của lớp và chạy độc lập của các đối tượng, mặt khác trong js, tất cả mọi thứ là một đối tượng; đánh bại điểm của các hàm tĩnh.
Chúng tương tự nhau: cả hai đều có thừa kế, nơi bạn có thể mở rộng mô-đun hiện có bằng mô-đun mới và trong PHP, bạn có thể sử dụng extends
để kế thừa từ lớp cha. Cả hai đều có trạng thái dữ liệu riêng tư ngăn chặn truy cập bên ngoài, cả hai nhóm và gói dữ liệu và phương pháp, và cả hai đều tuyệt vời khi sử dụng đúng cách.
- 1. Sự khác biệt giữa "Lớp" và "Cấp" là gì?
- 2. Sự khác biệt giữa các câu lệnh này trong một lớp học chung là gì?
- 3. Sự khác biệt giữa bao đóng và các lớp học truyền thống là gì?
- 4. Thuật ngữ: Sự khác biệt giữa một lớp học và một thành phần là gì?
- 5. Sự khác biệt giữa '&' và ',' trong Generics Java là gì?
- 6. Sự khác biệt giữa Hashtable và Từ điển là gì?
- 7. Trong Ember.js, sự khác biệt giữa [] và Ember.A ([]) là gì?
- 8. Sự khác biệt giữa & và && trong MATLAB là gì?
- 9. Sự khác nhau giữa D3.js và Cytoscape.js là gì?
- 10. Sự khác biệt giữa mảng và đối tượng trong js?
- 11. Sự khác biệt giữa gói android.opengl và javax.microedition.khronos.opengles là gì?
- 12. Sự khác biệt giữa Lớp học và Lớp học <?>
- 13. Sự khác biệt giữa mẫu và đường dẫn là gì?
- 14. Sự khác biệt giữa tệp * .bat và * .cmd là gì?
- 15. Sự khác biệt giữa HashMap và TreeMap là gì?
- 16. sự khác biệt giữa `lớp công khai` và chỉ` lớp` là gì?
- 17. Sự khác nhau giữa đối tượng và lớp trong PHP?
- 18. Sự khác biệt giữa build.sbt và build.scala là gì?
- 19. Sự khác biệt giữa chẩn đoán và metaheuristics là gì?
- 20. Sự khác biệt giữa struct_time và datetime là gì?
- 21. Trong PHP, sự khác biệt giữa 'stripcslashes' và 'stripslashes' là gì?
- 22. Sự khác biệt giữa gói, mô-đun và lớp trong Perl hướng đối tượng là gì?
- 23. Sự khác biệt giữa GetHashCode được triển khai trong lớp Object và ValueType là gì?
- 24. Sự khác biệt giữa addSubview và insertSubview trong lớp UIView
- 25. Sự khác biệt giữa lớp Debug và lớp Trace là gì?
- 26. Sự khác biệt giữa float và double trong php?
- 27. Sự khác biệt giữa ascx và .cshtml là gì?
- 28. Sự khác biệt giữa setDisplayHomeAsUpEnabled và setHomeButtonEnabled là gì?
- 29. Sự khác biệt giữa localname và qname là gì?
- 30. là gì sự khác biệt giữa SQL_Latin1_General_CP1_CI_AS và SQL_Latin1_General_CP1_CI_AI
Không phải là một câu trả lời trực tiếp, nhưng các lớp học không chỉ để làm chức năng dễ hiểu hơn. Mục đích chính của chúng là trừu tượng (ẩn chi tiết thực hiện), đóng gói (chỉ cho phép một số hành động nhất định cho từng đối tượng), và mô đun (làm cho mỗi lớp dễ dàng di chuyển). – Palladium