プロトタイプJavaScript { }


コードの書き込み中にメモリを管理する開発者が持つことができる主要な資質の一つです.実行環境は2つの段階でJavaScriptコードを実行するCreation and Hoisting .

実行コンテキストと創造


実行コンテキストは、実際にコードを実行する前にいくつかのことを作成します.まず、グローバルオブジェクトと外部環境を作成し、変数と関数のメモリ空間を設定しますHoisting . コードが実行される前に、変数がメモリに存在するようにメモリが割り当てられます.
関数はコードとともに書かれますが、変数ではなく、代わりにundefined 変数に割り当てられ、後で実行フェーズで行が並んで実行される場合、変数はそれぞれの値に割り当てられます.これはDynamic typing or Coercion JavaScriptでは、変数の型が実行時に定義されます.
それで、すべての変数を要約するためにundefined しかし、関数はメモリによって割り当てられ、したがって定義される前にさえ呼び出すことができます.変数の場合、私たちはundefined 値.
 function person(firstname, lastname){
           return "Hello "+this.firstname+" "+this.lastname
      } 
}
上の例では、最初と最後の2つの引数をとり、挨拶を返します.JavaScriptオブジェクトはこのような様々な機能を構成しており、これらの関数は実行時のホーニング時にメモリを割り当てられます.オブジェクト定義に書き込まれた関数の数が多いほど、オブジェクトにより多くのメモリが割り当てられ、そのインスタンスが生成されるたびに、あなたは心を決めます.

関数コンストラクタ


関数コンストラクタは、オブジェクトを構築するために使用される通常の関数です.The this 変数は新しい空のオブジェクトを指し、そのオブジェクトは関数から自動的に返されます.
Personオブジェクトの関数コンストラクターを作成する.
function person(firstname, lastname){
    this.first = firstname;
    this.last = lastname;
}

let employee1 = new person("John" , "Doe");
let employee2 = new person("Jane", "Doe");
人オブジェクトのプロパティを拡張するので、その場で新しい変数を追加できます.EG :
employee1.designation = "Developer"
employee2.designation = "Tester"

プロトタイピング


オブジェクトをプロトタイピングするのは、すべての拡張オブジェクトに利用可能にするオブジェクトプロトタイプにメンバー関数を追加するのに使用できるメソッドですが、メソッドがプロトタイプ内でのみ利用可能であり、すべてのオブジェクトにコピーされていないため、メモリを保存します.
これは、関数のメモリを実際に割り当てることなく、ソートの基本オブジェクトを作成し、その機能を拡張するのに役立ちます.
EG :
Person.prototype.getFullName = function(){
    return this.firstname+" "+this.lastname;
}
Person.prototype.greet = function(){
    return "Hello "+this.firstname+" "+this.lastname;
}
この例では、オブジェクトのプロトタイプに2つのメソッドを追加します.
JavaScriptは、組み込みのデータ構造と型にさまざまな機能を提供するためにこの機能を活用します.配列のオブジェクト定義をよく見ると、JavaScriptが提供する関数を見ることができます

オブジェクト定義では、開発者が使用できるさまざまな機能からなるprotoを持っています.配列を定義するとき、関数はメモリに割り当てられません.

組み込み関数コンストラクタ


組み込み関数のコンストラクタのプロトタイプに追加できます.EG用
String.prototype.isLengthLessThan = function(boundary){
    return this.length < boundary;
}
上記のメソッドは、関数isLengthLessThan() のプロトタイプに.
jQueryなどのJavaScriptフレームワークはjQueryでこれらの機能を活用します.fn.initは、最小限のメモリを割り当て、ユーザーに機能のトンを提供するコードを記述します.

結論


プロトタイプオブジェクトは最小限のメモリ割り当てを持つ機能のトンでオブジェクトを作成するための方法です.プロトタイピングを使用して多くのことができます.