私はモジュールをオンラインで学んでおり、jsのモジュールとPHPのクラスは非常に似ているようです。どちらのグループも、コーディングを理解しやすくするために一緒に機能します。関数は両方で宣言され、publicまたはprivateに宣言されます。それらはどのように使用されて似ているのですか?jsのモジュールとPHPのクラスの違いは何ですか?
答えて
JavaScriptのモジュールは、カプセル化、プライベート状態、他のモジュールからの継承さえものような素晴らしい機能を提供します。 PHPのようにクラスのいくつかの機能を提供していますが、そうではありません。彼らはクラスをエミュレートするために、既存のJavascriptの関数に基づいて構築しようとします。すなわち、それらは、のようなルックアンドフィールに構築されたである。
JavaScriptのモジュールは、変数に割り当てられた無名関数のインスタンスです。したがって、コードは上から下に実行される関数のすべての機能を持っています。returnステートメント(PHPクラスでは、フィールド定義と代入から直接ステートメントを実行することはできません)、さらにはグローバル変数へのアクセス。一方、PHPでは、クラス、またはそのメソッドではなく、クラス自体にない変数にアクセスすることはできません。大域変数にアクセスするには、クラスメソッドまたは静的関数が明示的に変数global $a
を呼び出す必要があります。 jsモジュールでは、すべてのグローバル変数にアクセスできますが、明示的にコードをインポートすることもできます。(function(a){})(imported);
もう1つの重要な問題はデータ抽象化です。 jsモジュールはフィールドのプライベートな状態を提供しますが、PHPのクラスはC++、java、pythonなどと同様に、プロパティに対するセキュリティを強化します。 abstract class
およびinterface
というキーワードを使用してクラス・メソッドと属性のみが定義または構造化されていますが使用されていない基本クラスを使用できます。
PHPクラスには、クラスオブジェクトが初期化され、最後にオブジェクトを破棄するために使用されたときに呼び出されるコンストラクタとデストラクタもあります。一方、PHPでは、メソッド内の関数は、オブジェクト、クラス、または他の関数のいずれかによって呼び出されたときにのみ実行されます。
クラスには静的関数があり、クラスのオブジェクトを持たなくても呼び出すことができ、オブジェクトとは独立して実行できます。一方、jsではすべてがオブジェクトです。これは静的関数のポイントを打ち消す。
これらは似ています:どちらも継承を持ちます。既存のモジュールを新しいモジュールで拡張することができます。PHPではextends
を使用して親クラスから継承できます。彼らは両方とも、外部アクセスを妨げる私的なデータ状態を持っています。彼らはデータとメソッドをグループ化してパッケージ化しています。
- 1. オブジェクト指向Perlのパッケージ、モジュール、クラスの違いは何ですか?
- 2. PHPのプラグイン、モジュール、アドオンなどの違いは何ですか?
- 3. django.shortcutsモジュールにあるDjangoTemplatesクラスとrender()メソッドのrender()の違いは何ですか?
- 4. C#のPingクラスとWebClientクラスの違いは何ですか?
- 5. C++クラス・ポインタとクラス・オブジェクトの間の違いは何ですか?
- 6. Apache TikaのMediaTypeクラスとMimeTypeクラスの違いは何ですか?
- 7. netty4のProtobufEncoderクラスとProtobufEncoderNanoクラスの違いは何ですか?
- 8. Flex:MXMLの「コンポーネント」とMXMLの「モジュール」の違いは何ですか?
- 9. Angular Jsのモジュールとライブラリの違い
- 10. IntelliJのSBTプロジェクトとScalaモジュールの違いは何ですか?
- 11. node.jsのリクエストモジュールとhttpモジュールの違いは何ですか?
- 12. 更新クラスと更新クラスの違いは何ですか
- 13. ConfigurationManagerクラスとSettingsクラスの違いは何ですか?
- 14. NetworkStreamクラスとSocketクラスの違いは何ですか?
- 15. 最終クラスとクラスの違いは何ですか?
- 16. Node.jsのClusterモジュールとLearnboostのClusterモジュールの違いは何ですか?
- 17. D3.jsのselection.styleとselection.attrの違いは何ですか?
- 18. Ext JSのgrid.columnsとgrid.getColumnManager()。getColumns()の違いは何ですか?
- 19. asyncDataとnuxt jsのメソッドの違いは何ですか?
- 20. Ext JS 6.2のBufferedStoreとBufferedRendererプラグインの違いは何ですか?
- 21. JSの式とステートメントの違いは何ですか?
- 22. Axis2:モジュールとサービスの違いは何ですか?
- 23. firebaseとfirebase-admin npmモジュールの違いは何ですか?
- 24. pymodbusとpymodbus3モジュールの違いは何ですか?
- 25. インポートスクリプトとES6モジュールの違いは何ですか?
- 26. NodeJS httpとhttpsモジュールの違いは何ですか?
- 27. npmモジュールjsonwebtokenとjwt-simpleの違いは何ですか?
- 28. モジュール処理とマルチプロセッシングの違いは何ですか?
- 29. Swiftパッケージとモジュールの違いは何ですか?
- 30. php cliとphp cgiの違いは何ですか?
直接的な答えではありませんが、クラスは関数を分かりやすくするためのものではありません。主な目的は、抽象化(実装の詳細を隠す)、カプセル化(各オブジェクトの特定のアクションのみを許可する)、モジュール性(各クラスを移植性の高いものにする)です。 – Palladium