JavaScriptオブジェクト向け
15243 ワード
オブジェクト向けプログラミング
JavaScriptの基本概念:オブジェクト向けをまとめました.
✔要了解的部分
-クラスとオブジェクト/作成方法
- Instance
-オブジェクト向けプロパティ(パッケージ、継承、多形、抽象)
🔷 クラスとオブジェクトの違い
クラスオブジェクトonly template、テンプレートロールonly of a classは、新しいインスタンスの作成を一度に宣言して複数のtimesno dataindata inを作成し、実際にデータを作成するのはオブジェクトです.
例:
インスタンス化時に呼び出されるメソッド.
コンピュータのストレージスペースに割り当てられたエンティティ
// 1-1 클레스 선언
class Person {
// constructor
constructor(name, age) {
// fields
this.name = name;
this.age = age;
}
// methods
speak() {
console.log(`${this.name}: hello!`);
}
}
// 1-2 오브젝트 생성
const bonnie = new Person('bonnie',3);
console.log(bonnie.name); // bonnie
console.log(bonnie.age); // 3
bonnie.speak(); //bonnie: hello!
🔷 オブジェクト向けのプロパティの理解「パッケージング」(Encapsulation):オブジェクトの特定の部分を非表示にすることで使用を制限するテクノロジー
再使用性の向上
同じオブジェクトを作成し続ける必要がないため、スクリプトの再利用性が向上します.
可読性の向上
隠匿性
これを内部可視変数(private)と外部可視変数(public)に分け、privateについては外部で見ることはできないので、漏洩の心配はありません.
class User {
constructor(firstName, lastName, age){
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
get age() {
returen this._age;
}
set age(value) {
this._age = value < 0 ? 0 : value;
}
}
const user1 = new User('Steve', 'job',-1);
console.log(user1.age) // 0
継承:1つ以上のクラスを特殊なバージョンのクラスとして作成するテクノロジー.継承は、親クラスのインスタンスを子クラスに割り当てることによって実現されます.
extends
キーワード:記載super
キーワード:継承を受け入れ、親クラスの作成者(constructor
)を呼び出すと集約状態:1つのクラスまたはメソッドを複数の方法で操作できます.
𗹺は、必要な関数のみを再定義できます.
すなわち、
overriding
:サブクライアントは、親クライアントの1つに提供された方法の特定のタイプの実装を提供する.class Shape {
constructor(width, height, color){
this.width = width;
this.height = height;
this.color = color;
}
draw() {
console.log(`drawing ${this.color} color if`)
}
getArea() {
return this.width * this.height;
}
}
// 상속 시 `extends`키워드 사용
class Rectangle extends Shape{}
class Triangle extends Shape{
// `super`키워드를 사용해서 부모클래스의 생성자를 호출한다.
super.draw();
// 다형성
// overriding
draw() {
console.log('🔺')
}
getArea() {
return (this.width * this.height)/2;
}
}
// 인스턴스 생성
const rectangle = new Rectangle(20, 20, 'blue');
rectangle.draw(); // drawing blue color of
console.log(rectangle.getArea()); // 400
const triangle = new Triangle(20, 20, 'red');
triangle.draw(); // drawing blue color of, 🔺- 다형성 특성 반영
console.log(triangle.getArea()); // 200 - 다형성 특성 반영
抽象:各オブジェクトの共通プロファイルとメソッドを抽出する1.設計宣言部分のみ(フィールドが空の方法).
2.各オブジェクトには、共通のプロパティが含まれている必要があります.
同じ属性間で区別し、classに結合します.
https://www.youtube.com/watch?v=_DLhUBWsRtw&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=6
https://developer.mozilla.org/ko/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
https://webclub.tistory.com/137
https://medium.com/@viktor.kukurba/object-oriented-programming-in-javascript-1-abstraction-c47307c469d1
Reference
この問題について(JavaScriptオブジェクト向け), 我々は、より多くの情報をここで見つけました https://velog.io/@ryuwisdom0_o/javascript-객체지향テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol