[Javascript] Class
2276 ワード
Class
過去にclassがなかった場合、複数の同類オブジェクトを作成する必要がある場合は、
new function
を使用してジェネレータを作成します.ただし、es 6に導入されたclass構文を使用して、オブジェクト向けプログラムで使用される機能を使用できるようになりました.基本構文
function User(name,age){
this.name=name;
this.age=age;
}
let kim = new User('kim','20'); // 생성자함수
let lee = new User('lee','23');
console.log(kim);
console.log(lee);
functionを使用してコンストラクション関数を作成および出力すると、Kim,Leeのオブジェクトが出力されます.複数のkim、lee関数を作成する必要がなく、1つの関数として定義し、必要に応じて関数に値を入力して出力するため、非常に簡潔に使用できます.class User{
constructor(name,age){
this.name = name;
this.age = age;
}
say(){
console.log(`${this.name}입니다`)
}
}
let kim = new User('kim','20'); // 생성자함수
let lee = new User('lee','23');
console.log(kim);
console.log(lee);
let user = new User('park','11');
User.say();
1番目の2番目のコンソール出力は、1番目の関数を使用するときに出力されるオブジェクトと同じです.3番目の
say()
出力では、class User {...}
構文が次のように動作します.1.
User
という名前の関数を構築します.2.関数本文は
constructor
メソッドによってインポートされ、constructor
がない場合、本文は空です.(consturtor
はnew
によって自動的に呼び出される)3.
say()
をクラス内で定義する方法をUser.prototype
に格納する.getter, setter
class User{
constructor(name,age){
this.name = name;
this.age = age;
}
say(){
console.log(`${this.name}입니다`);
}
get age(){ //get이 정의되면 age는 get으로 감
return this._age;
}
set age(value){
if (value < 0){
return console.log("error");
}
this._age=value;
}
}
let lee = new User('lee','-1');
console.log(lee);
コードを記述する場合はage値が0より大きい必要がありますが、ユーザーがうっかり0より小さい値を入力した場合は、直接出力できます.このような事態を防ぐためにgetter,setterを用いる.age
と入力されると、直ちに保存するのではなく、get
関数によって鍵が_age
に戻される.set
関数は値を受け入れ、_age
として格納します.ただし、
age
は0より大きくなければならないので、条件文を使用して、入力した値が0より小さい場合はerrorを出力します.エラーを確認して先に出力し、出力電力を
-1
減算Reference
この問題について([Javascript] Class), 我々は、より多くの情報をここで見つけました https://velog.io/@ldaehi0205/Jacascript-Classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol