[javascript]Prototype
2167 ワード
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はありません。オブジェクトを作成するにはどうすればいいですか?
オブジェクトのプロパティに対してパディング(コンテンツの実行)が実行されました(
レプリケーションなしで継承を実行するにはどうすればいいですか?
一般的なクラスでは、クラスが親に継承されている場合、子クラスによって作成されたインスタンスは、親とすべての子クラスの内容が子クラスの親にマージされた内容を反映します.
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
Reference
この問題について([javascript]Prototype), 我々は、より多くの情報をここで見つけました https://velog.io/@rlatmdgns94/Prototypeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol