OOP!!!!!

3795 ワード

  • オブジェクト向けプログラミングとは?
  • クラス単位で「分割」を行い、一部の機能を回収する
    エネルギーを使う
  • 区分の小さい単位はクラスであり、これらのクラスを用いて符号化することをオブジェクト向けプログラミングと呼ぶ.
  • これは、
  • が1つのビームに面していることを意味する.
  • オブジェクト=変数(属性)とメソッド(変数とメソッドの集合)
  • サブクラスは、スーパークラスの属性とメソッドを継承します.
  • 多態性(多形性)とは、ベースクラスから継承する方法が再定義(ベースクラスから継承する方法が再定義)されたときの
  • をいう.
    -oopの基本特性
    *カプセル化:(非表示)
  • は、1つの主要な物事の情報または動作を主要なオブジェクトにカプセル化する.
    *抽象
  • EndUserの簡単な使いやすさは、その内部の動作原理や構造が隠されており、これは物品やWebのユーザーが使いやすいことを意味します.
    継承
    -親要素(ベース)に継承された要素のフィーチャー(属性とメソッド)を表します.なぜ継承が必要なのかというと、重複する機能のほかに、追加の機能しか追加されていないので、後でコードのメンテナンスとメンテナンスが簡単になります.コードの再利用率を向上させる.
    多形性
  • ベースクラスから継承されたメソッドが再定義された場合(ベースクラスから継承されたメソッドが再定義された場合)は、追加された部分のみを継承して保持する利点がある
  • JavaScriptからオブジェクトを作成する方法
  • 関数を使用して作成できます.関数もオブジェクトなので.
  • JavaScriptでPrototypeとは何ですか.なぜ使いますか.
  • プロトタイプオブジェクトは、データを入れるためではなく、フレームワークを使用するためです.
  • インスタンスオブジェクトの作成時にメモリを効率的に管理できます.
  • --proto--構造関数とプロトタイプの関係.
  • --proto--は[prototype]とは異なります.[prototype]のgetter(取得者)とsetter(設定者)です.
  • [[Prototype]]
    関数を含むすべてのオブジェクトに内部slotがあります.
    関数オブジェクトとは、その親オブジェクトとしてのプロトタイプオブジェクトであり、関数オブジェクトは機能オブジェクトです.原型を指す.
  • 原型製品
    関数オブジェクトのみを持つプログラム.
    関数オブジェクトとは、作成者として使用するときに作成されるオブジェクトの親(クラスオブジェクト)です.
  • let insects = {
      eats: true
    };
    let ant = {
      fast: true
    };
    
    ant.__proto__ = insects; // (*)
    
    // 프로퍼티 eats과 fast를 ant에서도 사용
    alert( ant.eats ); // true (**) // from insects
    alert( ant.jumps ); // true
    

  • (*)とマークされた行で、昆虫をantのプロトタイプに設定します.

  • 「antの原型は昆虫」あるいは「antは昆虫を継承する」.そう言ってもいいです.

  • プロトタイプが設定されているため、antでは昆虫で表現される有用なプロトタイプや方法も使用できます.

  • このタイプから継承されたProperty=>「Propertyを継承(属性を継承)」

  • コンストラクション関数の役割:オブジェクトを作成しているクラスからオブジェクトを作成します.(クラス内でオブジェクトを作成および初期化する特別な方法)

  • classにはconstructorという特殊な方法しかありません.

  • コンストラクション関数メソッドは、superキーワードを使用してsuperclassのコンストラクション関数メソッドを呼び出すことができます.

  • コンストラクション関数メソッドが指定されていない場合は、デフォルトのコンストラクション関数メソッドが使用されます.
  • Object.createメソッドについて説明します.
  • --proto--Objectではありません.createメソッド
  • の使用
    let insects = {
      eats: true
    };
    
    // 프로토타입이 insects인 새로운 객체를 생성합니다.
    let ant = Object.create(insects);
    
    alert(ant.eats); // true
    
    alert(Object.getPrototypeOf(ant) === insects); // true
    
    Object.setPrototypeOf(ant, {}); // ant의 프로토타입을 {}으로 바꿉니다.
  • ES 6 classキーワードとスーパーキーワードの使用方法について説明します.

  • コード再利用の観点から,クラス継承は非常に有用である.再定義するクラスが既存のクラスと非常に似ている場合は、異なる点を実装するだけで継承して使用できます.コード再利用は開発コストを著しく削減する潜在力があるため、非常に重要である.

  • extendsキーワード
  • extendsキーワードは、親(ベースクラス)を継承するサブクラスを定義するために使用されます.

  • オーバーライド(Override)
    これは、子クラスによって再定義され、親クラスが持つメソッドを使用する方法です.

  • かふか
    パラメータのタイプや数が異なり、同じ名前のメソッドを実装し、パラメータに基づいてメソッドを呼び出す方法を区別します.JavaScriptではオーバーロードはサポートされていませんが、argumentsオブジェクトを使用して実装できます.

  • オブジェクトのPropertyまたはメソッドにアクセスしようとしたときにPropertyまたはMethodがない場合、Prototypeチェーンは[Prototype]の内部スロットが指すリンクに基づいて、親ロールとして機能するPrototypeオブジェクトのPropertyまたはMethodを順に検索します.また、検索に成功すると、そのプログラムやメソッドが使用されます.

  • スーパーキー
  • スーパーキーは、親を参照するか、親を呼び出すコンストラクション関数に使用されます.
  • スーパーメソッドは、サブクラスのコンストラクション関数の内部で親クラスのコンストラクション関数(super-constructor)を呼び出す.
  • は、親クラスのインスタンスを作成します.
  • const Grub = require('./Grub');
    
    class Bee extends Grub{//Grub이 부모 클라스에서 상속한다고 정의
      constructor() {
        super (); // 부모의 생성자를 호출
        this.age = 5;
        this.color = 'yellow';
        this.job = 'Keep on growing';
      }
      eat () {
        super.eat(); //부모 클래스(Base Class)에 대한 참조
      }
    }
    
    module.exports = Bee;
  • require()関数はmoduleです.輸出を回収する.
  • require()関数は、モジュールを読み込むための関数です.
  • module.exportsはファイルを返す結果です.