Skip to content

Instantly share code, notes, and snippets.

@kobitoDevelopment
Created May 19, 2022 14:32
Show Gist options
  • Save kobitoDevelopment/4b34ae852a2ab0c4ed5991606a460ae8 to your computer and use it in GitHub Desktop.
Save kobitoDevelopment/4b34ae852a2ab0c4ed5991606a460ae8 to your computer and use it in GitHub Desktop.
//classにより、オブジェクトを作成するための雛形を設定
class User {
//オブジェクト作成時に実行される関数(コンストラクタ)を直接実装
constructor(name, pass, roll) {
//this. ~~ により、オブジェクトにデータを格納
this.username = name;
this.password = pass;
this.roll = roll;
}
//生成されるオブジェクトにメソッドを追加する場合、コンストラクタと同じ階層に記述
checkRoll() {
console.log("ログイン情報を確認");
if (this.roll === "管理者") {
console.log("管理者");
}
}
login() {
this.checkRoll();
console.log(`ログイン[${this.username}/${this.password}]`);
}
changePassword(pass) {
this.password = pass;
console.log(`パスワードが${this.password}に変更されました`);
}
}
//クラスからオブジェクトを生成(インスタンス化)するためにnew演算子を使用
//記述した引数はコンストラクタの引数に渡される
const hoge = new User("ほげ", "hoge");
//クラス内に記述したメソッドを実行
hoge.login();
//生成されるのはオブジェクトのため、通常通り書き換え可能
hoge.changePassword("fuga");
//生成されたオブジェクトに特定のプロパティがあるか真偽値で確認可能 メソッドと一致してもtrueは返さない
console.log(hoge.hasOwnProperty("username"));
//生成されたオブジェクトに特定のプロパティがあるか真偽値で確認可能 メソッドと一致してもtrueを返す
console.log("login" in hoge);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment