Prototype


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());
ハーモニーがきれいになってきました~~😊