ES 6構文-Prototype
4658 ワード
Prototype
PrototypeはJavaScript言語にのみ存在します.
プロトタイプは遺伝子として受け入れられる.
マシン(constructor)を作成すると、prototypeという空間が自動的に生成されます.
prototypeに値を追加すると、すべての子供が継承できます.
(Constructorは親インスタンス、その子インスタンスはConstructor)
function Machine(nic, age) {
this.name = nic;
this.age = age;
this.sayHi = function() {
console.log('안녕하세요! ' + this.name + '입니다!');
}
}
Machine.prototype.gender = '남';
//Constructor로 생성된 모든 object에 gender : '남'이 물려받는다.
let people1 = new Machine('Apeachicetea', 15);
let people2 = new Machine('kim', 20);
Machine.prototype.性別:「男」
people 1には性別属性はありませんが、people 1です.性別=出力は「男」.
その理由はJSのobject出力時の動作原理にある.
people1.性別を作成する場合、
1.JSはまずpeople 1に直接的な性別属性があるかどうかを決定し、ない場合、
2.ヒト1の親遺伝子、すなわちConstructor.プロトタイプに性別属性があるかどうかを確認します.
3.あれば実行する.
Prototypeプロパティ
function Machine(nic, age) {
this.name = nic;
this.age = age;
this.sayHi = function() {
console.log('안녕하세요! ' + this.name + '입니다!');
}
}
Machine.prototype.gender = '남';
//Constructor로 생성된 모든 object에 gender : '남'이 물려받는다.
let people1 = new Machine('Apeachicetea', 15);
let people2 = new Machine('kim', 20);

objectはprototypeを作成しません.
下図のように強制的に接続できます.
let parents = { name : 'kim' };
let children = {};
children.__proto__ = parents;
console.log(children.name);
コンソールウィンドウ
Reference
この問題について(ES 6構文-Prototype), 我々は、より多くの情報をここで見つけました https://velog.io/@starkdy/JavaScript-ES6-신문법-Prototypeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol