TIL 09,JS:クラス*
フナ餅の型を利用して、中の材料が違う限り、基本的な形状は同じですが、味の異なるフナ餅は完成しました.フナ餅の型は一流で、作られたフナ餅をインスタントと言います.
JavaScriptでオブジェクトを作成するには3つの方法があります.
ビルト人生成器
オブジェクトテキストまたはオブジェクト作成者を使用してオブジェクトを作成すると、手動でインスタンスが作成されます.
クラスを次の形式で宣言します.
サブクラスに新しいコンテンツを追加する場合、たとえばコンストラクション関数に新しい変数を追加します.は、まず親クラスの構造関数 の2番目の 例外クラス構文を理解しました.次回は1つ1つの手でオブジェクトを作らず、事前にクラスを作って、勝手に撮影します.フナ餅が食べたい👍
オブジェクトの作成方法
JavaScriptでオブジェクトを作成するには3つの方法があります.
1.オブジェクトの分離
var person = {};
person.lastName = 'kim';
person.firstName = 'sunghoon';
2.オブジェクト作成者
ビルト人生成器
Object
を使用します.var person = new Object();
person.lastName = 'kim';
person.firstName = 'sunghoon';
実は一度も二度も同じです.3.コンストラクタ
function Perosn(name, gender, lastName) {
this.name = name;
this.gender = gender;
var lastName = lastName;
this.married = true;
}
var person = new Person('sunghoon','male','kim');
this
は対象自身を表す代名詞である.this
に分類される変数は、コンストラクション関数の外部から呼び出すことができる(共通であるが)が、通常宣言される変数は外部から呼び出すことができない.△私密.console.log(person.LastName); // Error!
なぜクラスの概念が必要ですか?
オブジェクトテキストまたはオブジェクト作成者を使用してオブジェクトを作成すると、手動でインスタンスが作成されます.
var person1 = {};
person1.name = 'tony';
person1.gender = 'male';
var person2 = {};
person2.name = 'jamie';
person2.gender = 'male';
var person3 = {};
person3.name = 'janice';
person3.gender = 'female';
以上のように、同じ操作が重複しすぎて、作成するオブジェクトの数が多すぎる場合は、非常に非効率な操作になります.クラスのコンセプトを使用すると、プレビューボックスを作成することで、重複するオブジェクトの作成操作を簡略化できます.var person1 = new Person('tony', 'male');
var person2 = new Person('jamie', 'male');
var person3 = new Person('janice', 'female');
また、複数の異なるクラスを作成する場合には、重複する部分を継承として処理し、重複する部分を省略することもできる.クラス(ES 6)
1.クラスの作成
クラスを次の形式で宣言します.
class Person{
constructor(name, first, second){
this.name = name;
this.first = first;
this.second = second;
}
sum(){
return 'prototype : ' + (this.first + this.second);
}
}
var kim = new Person('kim', 10, 20);
console.log("kim.sum()", kim.sum()); // 'kim.sum()' 'prototype : 30'
クラスの内容も変更できます.たとえば、sum
メソッドを変更するには、// 코드는 위에서 이어진다.
kim.sum = function(){
return 'this : ' + (this.first + this.second);
}
var lee = new Person('lee', 10, 10);
console.log("kim.sum()", kim.sum()); // 'kim.sum()' 'this : 30'
console.log("lee.sum()", lee.sum()); // 'lee.sum()' 'prototype : 20'
kim
のsum
方法は、印刷方法に変更された.各インスタンスに適用される変更点は、他のインスタンスには影響しません.従って、他の実施例lee
のsum
の方法は、従来の方法と同様にプロトタイプを印刷するであろう.2.クラス継承
extends
を使用してクラスを継承します.class Person{
constructor(name, first, second){
this.name = name;
this.first = first;
this.second = second;
}
sum(){
return this.first+this.second;
}
}
class PersonPlus extends Person{
avg(){
return (this.first+this.second)/2;
}
}
var kim = new PersonPlus('kim', 10, 20);
console.log("kim.sum()", kim.sum()); // 'kim.sum()' 30
console.log("kim.avg()", kim.avg());
kim
はPersonPlus
の例であるが、PersonPlus
はPerson
を継承しているので、sum
法を使用しても問題はない.3. super
サブクラスに新しいコンテンツを追加する場合、たとえばコンストラクション関数に新しい変数を追加します.
class PersonPlus extends Person {
constructor (name, first, second, third) {
this.name = name;
this.first = first;
this.second = second;
this.third = third;
}
}
前述したように、ジェネレータを書き直す必要があります.これは親と重複する部分ですが、書き直さなければなりません.しかし、super
キーワードを使用すると、この作業をより簡単に完了することができる.class Person{
constructor(name, first, second){
this.name = name;
this.first = first;
this.second = second;
}
sum() {
return this.first + this.second;
}
}
class PersonPlus extends Person{
constructor(name, first, second, third){
super(name, first, second);
this.third = third;
}
sum() {
return super.sum() + this.third;
}
avg() {
return (this.first + this.second + this.third) / 3;
}
}
var kim = new PersonPlus('kim', 10, 20, 30);
console.log("kim.sum()", kim.sum()); // 'kim.sum()' 60
console.log("kim.avg()", kim.avg()); // 'kim.avg()' 20
super
には2つの使い方があります.super()
を呼び出す;super.methodName()
は、より高いレベルのメソッドを呼び出す.Reference
この問題について(TIL 09,JS:クラス*), 我々は、より多くの情報をここで見つけました https://velog.io/@tonyk0901/TIL-자바스크립트-객체-지향-프로그래밍テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol