Prototype
12899 ワード
Prototype
コンセプトの継承
関数形式でプログラミングしたり、OOPに関係なく開発したりすれば、プロトコルタイプはあまり使いにくいが、Intunnelがどのように動作しているかがわかります.
// ES5 Syntax (구 문법)
function Student(name) {
this.name = name;
};
// 프로토타입 체이닝
Student.prototype.greet = function greet() {
return `Hello, ${this.name}`;
};
const myself = new Student('Jinju');
console.log(myself); // Student { name: 'Jinju' }
console.log(me.greet()); // Hello, Jinju!
定義関数のようにクラスを作成します.クラスという名前のキーワードが存在しますが、実際にはプロトタイプベースの関数です.
newキーワードにより、関数はコンストラクション関数(コンストラクション関数)として機能します.
// ES5 Syntax (구 문법)
function Person(name) {
this.name = name;
};
Person.prototype.greet = function greet() {
return `Hello, ${this.name}`;
};
function Student(name) {
this.__proto__.constructor(name);
};
Student.prototype.study = function study() {
return `${this.name} is studying.`;
};
// Person과 Student 사이의 연결관계를 만드려면
Object.setPrototypeOf(Student.prototype, Person.prototype);
const myself = new Student('Jinju');
console.log(myself instanceof Student); // true
console.log(myself instanceof Person); // true
const anotherPerson = new Person('John');
console.log(anotherPerson instanceof Student);
console.log(anotherPerson instanceof Person);
ES 5の上記コードを新しい構文で記述する
class Person {
constructor(name) {
this.name = name;
}
greet() {
return `Hi, ${this.name}`;
}
};
class Student {
constructor(name) {
super(name);
}
study() {
return `${this.name} is studying`;
}
};
const myself = new Student('Jinju');
console.log(myself.study());
console.log(myself.greet());
ハーモニーがきれいになってきました~~😊Reference
この問題について(Prototype), 我々は、より多くの情報をここで見つけました https://velog.io/@100pearlcent/Prototypeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol