したがって、JavaScript にはクラスという概念がありません。これを理解することが重要です。読者が理解しやすくするために、多くの JavaScript チュートリアルでは一般的に使用されるクラス パターンの概念が適用されているため、誰にとっても曖昧になります。
コードの最初のセグメント、
関数従業員(){
this.name="";
this.dept=""
}
employee.prototype={
say:'こんにちは'
}
var p = newemployee();
このコードはよく使用されますが、new キーワードが最もわかりにくいです。ここで new によって行われる作業は、.NET での作業とは異なります。
この方法で、JavaScript で new オペレーションを使用してインスタンスを作成するプロセスを理解できます。new キーワードは、employee() をテンプレートとして使用して新しいオブジェクトを作成し、employee コンストラクター内のメンバー変数をコピーします。 p オブジェクトがパラメーターとしてコンストラクターに渡され、関数内のすべてのメンバー変数が適用され、コンストラクターのプロトタイプが継承されると理解されます。
コードを使用して新しいプロセスをシミュレートします。
//var p = new Object()
var p ={};
employee.apply(p);
__proto__ は、 javascript オブジェクトのインスタンス。コンストラクターのプロトタイプ属性 (つまり、employee) を指します。オブジェクトは、p.say などのメンバー変数を探すときに、最初に独自のメンバー属性を探します。値が見つからない場合は、__proto__ を呼び出してプロトタイプを確認します。現在の例では、employee.prototype 内の Say メンバーを見つけます。