JavaScriptは対象の三つの基本的な特徴例に向かって詳しく説明します。


本論文の実例は、JavaScriptのオブジェクト指向の三つの基本的な特徴を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
対象に向かって知っている学生は、パッケージ、継承、多态の三つの基本的な特徴がありますが、この三つの言叶については、具体的にはよく分からないかもしれません。フロントエンドにとって最も接触が多いのは かもしれません。多状態については、そうではないかもしれません。
パッケージ
パッケージを言う前にパッケージは何ですか?
パッケージとは
パッケージ:オブジェクトの実行に必要なリソースをプログラムオブジェクトにカプセル化する――基本的には、方法とデータである。オブジェクトは「インターフェースの公開」です。これらのインターフェースに付加された他のオブジェクトは、オブジェクトの実現に関心を持たない方法でこのオブジェクトを使用することができます。この概念は「あなたがどうやって作ったのか教えないでください。やればいいです。」対象は自己を含めた原子と考えられます。オブジェクトインターフェースは、共通の方法および初期化データを含む。抜粋は百科事典より。
パッケージの理解については、 というもう一つのステップがあるかもしれません。まず、コードの中からそれらの属性方法を抜き出すべきだということを確認してください。これらを基礎にしてこそ、パッケージをよりよく作ることができます。
パッケージはその属性と方法のパッケージにほかならない。
  • クラス:パッケージオブジェクトの属性と挙動
  • 方法:パッケージの具体的な論理機能
  • アクセスパッケージ:アクセス修飾パッケージは、そのアクセス権限をパッケージ化するためのものにほかならない
  • 
    class Employees {
      constructor(name,age){
        this.name = name;
        this.age = age;
      }
      getInfo(){
        let {name,age} = this;
        return {name,age};
      }
      static seyHi(){
        console.log("Hi");  
      }
    }
    
    let lisi = new Employees("Aaron",18);
    lisi.seyHi();  // lisi.seyHi is not a function
    lisi.getInfo(); // {name: "Aaron", age: 18}
    Employees.seyHi(); // Hi
    Employeesで抽出された共通属性はnameage、共通方法はgetInfoseyHiであるが、getInfoseyHiとは違ってseyHiを使用して、静的方法に変更した。staticseyHiのクラスに属している。しかし、Employees方法は一例に属する。getInfostaticの方法を使用して、アクセス権限のカプセル化が行われている。
    もう一つ例をあげます。
    
    Promise.then() // Promise.then is not a function
    let p1 = new Promise(() => {})
    p1.then(); // Promise {<pending>}
    Promise.all([1]);  // Promise {<resolved>: Array(1)}
    上記のコードからseyHiPromiseを使用して、その方法のアクセス権限をカプセル化していることが分かります。
    引き継ぐ
    引き継ぐ:継承というのはあまり馴染みのないもので、相続というのは子供が親の種類を持つ様々な共有staticと共有 を作ることができる。同じコードを再作成する必要はありません。親カテゴリを継承しながら、いくつかの属性を再定義し、いくつかの方法を書き換えることができます。すなわち、親カテゴリの元の属性と方法をカバーして、親カテゴリとは異なる機能を得ることができます。抜粋は百科事典より。
    子類は父類を継承した後、子類は父類の属性と方法を持っていますが、自分だけの属性と方法を備えています。つまり、子類の機能は父類より多いです。あるいは同じです。
    
    class Employees {
      constructor(name){
        this.name = name;
      }
      getName(){
        console.log(this.name)
      }
      static seyHi(){
        console.log("Hi");  
      }
    }
    class Java extends Employees{
      constructor(name){
        super(name);
      }
      work(){
        console.log("     ");
      }
    }
    let java = new Java("Aaron");
    java.getName();
    java.work();
    // java.seyHi();  // java.seyHi is not a function
    上記の例からは、父類の静的方法は継承されず、父類の共有属性と方法のみが継承されることがわかる。この点は注意が必要です。
    サブクラスの継承は メソッドを持っているだけでなく、独自のgetNameメソッドを持っています。
    多形
    多形:文字どおりに「複数の状態」という意味で、サブタイプのポインタを親タイプのポインタに割り当てることができます。抜粋は百科事典より。
    はっきり言って、多態は同じ事物で、一つのインターフェース、多種の実現、同時に最初のプログラムにタイミングを設定して、プログラムの要求によって異なるかもしれません。どの関数が実現されるかは不明です。多態によってソースコードを修正する必要がないなら、一つのインターフェースの多様な解決案を実現できます。
    多形の表現形式は書き換えと重載します。
    何が書き換えですか
    書き換える:サブクラスは親クラスの方法を継承することができ、同じ方法を再構築する必要がない。しかし、子类は父亲のやり方をそのまま引き継ぎたくなくて、ある一定の修正をしたいという场合があります。これは方法を使った书き换えが必要です。方法を書き換えて、また方法をカバーします。抜粋は百科事典より。
    
    class Employees {
      constructor(name){
        this.name = name;
      }
      seyHello(){
        console.log("Hello")
      }
      getName(){
        console.log(this.name);
      }
    }
    class Java extends Employees{
      constructor(name){
        super(name);
      }
      seyHello(){
        console.log(`Hello,     ${this.name},   Java   。`)
      }
    }
    const employees = new Employees("Aaron");
    const java = new Java("Leo");
    employees.seyHello();  // Hello
    java.seyHello();  // Hello,     Leo,   Java   。
    employees.getName();  // Aaron
    java.getName(); // Leo
    上記のコードからworkerJavaを継承していることが分かりますが、サブクラスと親タイプの両方にEmployeesの方法があり、異なる需要を満たすために、親クラスを継承した後、seyHelloの方法を書き換えました。ですから、呼び出し時には違った結果が得られます。子類が親類を継承した以上、子類も同様に親類を持つseyHello方法です。
    重積載とは何ですか
    リロードとは、関数または方法に同じ名前がありますが、パラメータリストが異なる場合、同じ名前の異なるパラメータの関数または方法の間で、リロード関数または方法と呼びます。抜粋は百科事典より。
    
    class Employees {
      constructor(arg){
        let obj = null;
        switch(typeof arg)
        {
          case "string":
             obj = new StringEmployees(arg);
             break;
          case "object":
             obj = new ObjEmployees(ObjEmployees);
             break;
          case "number":
            obj = new NumberEmployees(ObjEmployees);
            break;
        }
        return obj;
      }
    }
    class ObjEmployees {
      constructor(arg){
        console.log("ObjEmployees")
      }
    }
    class StringEmployees {
      constructor(arg){
        console.log("StringEmployees")
      }
    }
    class NumberEmployees {
      constructor(arg){
        console.log("NumberEmployees")
      }
    }
    new Employees({})  // ObjEmployees
    new Employees("123456") // StringEmployees
    new Employees(987654)  // NumberEmployees
    JavaScriptは重載の概念がないので、自分でロジックを作って重載を完成します。
    上記のコードにはgetNameEmployeesObjEmployeesStringEmployees類が定義されていますが、実用化NumberEmployeesの際にはEmployeesの中で判断が行われています。パラメータによって異なる対応するクラスが返されます。
    このようにして簡単なクラスの荷重が完了しました。
    締め括りをつける
  • パッケージは、コードをモジュール化するように、実装の詳細を隠すことができる。
  • は、既存のコードモジュール(クラス)を拡張することができ、その目的はすべてコード再利用のためである。
  • 多態は同じ事物であり、同じ方法を呼び出し、パラメータも同じであるが、表現の挙動は違っている。多形は二つの種類に分けられます。一つは挙動多形と対象の多形です。
  • プログラミングでは、この書き込みの思想を多く使うことは、プログラミングの際に役に立ちます。コードを高復用とメンテナンスができます。
    興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。
    もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「javascript対象向け入門教程」、「JavaScriptエラーとデバッグテクニックのまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」および「JavaScript数学演算の使い方のまとめ
    本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。