[javascript]Prototype


Prototype



多くの文章はprotypeを説明する際に混合classの継承で説明している.
prototype != 継承
javascriptでは、レプリケーションによって継承されていません.
Prototypeはクラスやオブジェクトの内容をコピーすることなく継承を実現する方法である.
プトロタイプは接続です.
JavaScriptにはクラスがありません!

クラスがない場合、オブジェクトをデザイン通りに印刷するにはどうすればいいですか?


クラスクラス:印刷オブジェクトのフレーム
class person{
	constructor(name){
   	  this.name = name;
    }
    
    sayHello(){
    	console.log(`${this.name} : hello`);
    }
}

function Person(name){
	this.name = name;
    this.sayHello = function(){
    	console.log(`${this.name} :hello`)
    }
}
実際に実行されているコードはクラスではありません!!クラスを関数タイプに変換して実行

クラスでない場合、returnはありません。オブジェクトを作成するにはどうすればいいですか?

  • 新しい演算子は、新しい空のオブジェクトメモリに
  • を作成します.
  • を生成する空のオブジェクトは、
  • にバインドされます(person関数).
    オブジェクトのプロパティに対してパディング(コンテンツの実行)が実行されました(
  • ).
  • が返されない場合、
  • が返される.

    レプリケーションなしで継承を実行するにはどうすればいいですか?


    一般的なクラスでは、クラスが親に継承されている場合、子クラスによって作成されたインスタンスは、親とすべての子クラスの内容が子クラスの親にマージされた内容を反映します.
    JavaScriptでは不可能
    継承がレプリケーションを意味する場合、この場合の継承はJavaScriptでは不可能です.
    コード自体の深度コピーをコピーできません.
    JavaScriptからコピーできるのは元の値、オブジェクトの参照値です.
    「proto」を使ってこれを真似します
    「proto」=オブジェクトとオブジェクトをリンクするリンク
  • 他のオブジェクトに基づいて作成された場合
    オブジェクトにプロトタイプと呼ばれるオブジェクトがある場合、オブジェクトはそのオブジェクトへのprotoリンク
  • を自動的に持つ.
    const obj = Object.create(oldObj)
    const obj.__proto__ === oldObj

  • 関数がオブジェクトでない場合(関数オブジェクト)

  • new演算子と関数を使用して作成されたオブジェクト
  • プロトタイプフィルタとは?


    protoに沿ってナビゲート


    「≪プロトコル・リンク|Protocol Links|ldap≫」を使用してプロパティを操作するには
    chris.sayHello内部でいろいろなことが起こりました
    chrisにsayHeloがない場合はprotoでperson関数オブジェクトに移動し、そこにあるかどうかを検索します.
    再配分の時に何が起こりますか?
    状況が異なる:
    1.厳格モードでエラー
    2.非攻撃モードでは何も起こらない
    この文章は優雅な科学技術講座の内容だ.
    https://www.youtube.com/watch?v=RYxgNZW3wl0