ð€¯ åºæïŒé¢æ°ãšããŒã¿ããã©ãã©ã«ãªãåé¡
ãããŸã§ãããªãã¯ããŠãŒã¶ãŒãã®ããŒã¿ãæ±ãéããããªé¢šã«æžããŠããŸããã§ãããïŒ
JavaScript
// ããŒã¿ïŒãªããžã§ã¯ãïŒ
const userData = { name: "Alice", isLogin: false };
// é¢é£ããåŠçïŒé¢æ°ïŒ
function login(user) {
user.isLogin = true;
console.log(`${user.name}ããã°ã€ã³ããŸããã`);
}
login(userData); // ãã°ã€ã³åŠç
ããŒã¿ïŒuserDataïŒãšããã®ããŒã¿ã«çŽã¥ãåŠçïŒlogin颿°ïŒããã©ãã©ã«ååšããŠããŸãããã®ããŒã¿ãšåŠçãã**äžã€ã®ãèšèšå³ã**ã«ãŸãšããŠããŸãã®ããã¯ã©ã¹ãšããæŠå¿µã§ãïŒ
ã¯ã©ã¹ã䜿ãã°ãè€éãªããŒã¿ãæ±ãWebãµã€ãã®ã³ãŒãã¯ãé©ãã»ã©æŽçãããåå©çšæ§ãçäžããããŸãã仿¥ãããããªãã¯åãªãã³ãŒããŒã§ã¯ãªãã**ãã³ãŒãã®å»ºç¯å®¶ã**ãžãšã¹ãããã¢ããããŸãïŒ
1. ð ã¯ã©ã¹ãšã¯ïŒãèšèšå³ããšãå®äœãã®é¢ä¿
ã¯ã©ã¹ã¯ãããŒã¿ïŒæ å ±ïŒãšãã®ããŒã¿ãæäœããåŠçïŒé¢æ°ïŒãäžã€ã«ãŸãšãã**ãèšèšå³ã**ã§ãã
| åç§° | åœ¹å² | å®äžçã®äŸ |
| ã¯ã©ã¹ (Class) | èšèšå³ãæ©èœãšããŒã¿ã®æ§é ãå®çŸ©ããã | èªåè»ã®èšèšå³ãååãè²ããšã³ãžã³ãšãã£ãæ å ±ãšããèµ°ãããæ¢ãŸãããšãã£ãåäœãå®çŸ©ãããŠããã |
| ã€ã³ã¹ã¿ã³ã¹ (Instance) | å®äœãèšèšå³ã«åºã¥ããŠäœããããå®éã®ã¢ãã | å®éã«è£œé ãããäžå°ã®è»ïŒèµ€è²ã®ããšã¿ãé»è²ã®ãã³ããªã©ïŒã |
Google ã¹ãã¬ããã·ãŒãã«ãšã¯ã¹ããŒã
JavaScriptã§ã¯ã©ã¹ãå®çŸ©ããŠãããã®æç¹ã§ã¯ãã ã®ãèšèšå³ãã§ããããã䜿ãã«ã¯ãnewããŒã¯ãŒãã䜿ã£ãŠã€ã³ã¹ã¿ã³ã¹åãããå®äœããäœãåºãå¿
èŠããããŸãã
2. ð§± ã¯ã©ã¹ã®åºæ¬æ§é ïŒããŒã¿ãšåŠçã®å®çŸ©
ã¯ã©ã¹ã¯ãäž»ã«**ããããã£ïŒããŒã¿ïŒãšã¡ãœããïŒåŠçïŒ**ãšãã2ã€ã®èŠçŽ ã§æ§æãããŸãã
2-1. ã³ã³ã¹ãã©ã¯ã¿ãŒïŒconstructorïŒïŒå®äœãçã¿åºãå·¥å Ž
ã¯ã©ã¹ã®äžã§æãéèŠãªã®ããconstructorïŒã³ã³ã¹ãã©ã¯ã¿ãŒïŒã§ããããã¯ãnewããŒã¯ãŒãã§æ°ããå®äœïŒã€ã³ã¹ã¿ã³ã¹ïŒãäœãããç¬éã«äžåºŠã ãå®è¡ãããç¹å¥ãªé¢æ°ã§ãã
ããã§ããã®å®äœãæã€ã¹ãåæããŒã¿ïŒããããã£ïŒãèšå®ããŸãã
JavaScript
class User {
// ãŠãŒã¶ãŒèšèšå³ã®å®çŸ©
constructor(name, email) {
// new User()ã§åŒã³åºããããšãã«å®è¡ããã
this.name = name; // ããããã£ïŒããŒã¿ïŒ
this.email = email; // ããããã£ïŒããŒã¿ïŒ
this.isLoggedIn = false;
}
// 2-2. ã¡ãœããïŒåŠçïŒ
login() {
this.isLoggedIn = true;
console.log(`${this.name}ããã°ã€ã³ããŸãããããããïŒ`);
}
logout() {
this.isLoggedIn = false;
console.log(`${this.name}ããã°ã¢ãŠãããŸããã`);
}
}
2-2. ã¡ãœããïŒããŒã¿ã«çŽã¥ããåäœ
ã¯ã©ã¹å
ã§å®çŸ©ããã颿°ãã¡ãœãããšåŒã³ãŸããã¡ãœããã¯ããã®ã€ã³ã¹ã¿ã³ã¹ãæã€ããŒã¿ïŒthis.ã§ã¢ã¯ã»ã¹ïŒã䜿ã£ãŠåŠçãå®è¡ããŸãã
3. ð ã¯ã©ã¹ã䜿ã£ãŠã¿ãïŒã€ã³ã¹ã¿ã³ã¹å
å®çŸ©ããã¯ã©ã¹ã䜿ãã«ã¯ãå¿
ãnewããŒã¯ãŒãã䜿ã£ãŠã€ã³ã¹ã¿ã³ã¹åããŸãã
JavaScript
// Userã¯ã©ã¹ïŒèšèšå³ïŒãããæ°ãããŠãŒã¶ãŒå®äœïŒã€ã³ã¹ã¿ã³ã¹ïŒã2ã€äœæ
const alice = new User("ã¢ãªã¹", "alice@example.com");
const bob = new User("ãã", "bob@example.com");
// 1. ããŒã¿ã«ã¢ã¯ã»ã¹ (ããããã£)
console.log(alice.name); // çµæ: ã¢ãªã¹
console.log(bob.email); // çµæ: bob@example.com
// 2. åŠçãå®è¡ (ã¡ãœãã)
alice.login(); // çµæ: ã¢ãªã¹ããã°ã€ã³ããŸãããããããïŒ
bob.login(); // çµæ: ããããã°ã€ã³ããŸãããããããïŒ
// 3. ããŒã¿ãã€ã³ã¹ã¿ã³ã¹ããšã«ç¬ç«ããŠããããšã確èª
console.log(alice.isLoggedIn); // çµæ: true
console.log(bob.isLoggedIn); // çµæ: true
泚ç®ãã¹ãã¯ãaliceãšbobã¯ã©ã¡ããUserãšããèšèšå³ããäœãããŠããŸãããããããã®isLoggedInã®ç¶æ
ã¯å®å
šã«ç¬ç«ããŠããç¹ã§ããããããã¯ã©ã¹ã䜿ãæå€§ã®ã¡ãªããã§ãã
ð ãŸãšãïŒä»æ¥ããã³ãŒãã®èšèšè ã«ãªããïŒ
ã¯ã©ã¹ã¯ãããªãã®ã³ãŒãã®æ§é ãæ ¹åºããå€ãããWebéçºã®æã匷åãªããŒã«ã®äžã€ã§ãã
| ç¹åŸŽ | ã¯ã©ã¹ |
| å®çŸ© | class ClassName { ... } |
| å®äœå | const instance = new ClassName(...) |
| ããŒã¿ | this.propertyïŒããããã£ïŒ |
| åŠç | method()ïŒã¡ãœããïŒ |
åºæ¬ã«ãŒã«ïŒããŒã¿ïŒããããã£ïŒãšããã®ããŒã¿ãæäœããåŠçïŒã¡ãœããïŒã¯ãå¿ ãåãã¯ã©ã¹ã®äžã«éã蟌ããã
ãã®ãªããžã§ã¯ãæåã®ç¬¬äžæ©ãèžã¿åºããããšã§ãããªãã¯è€éãªWebã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ãšããžãã¯ããæŽçããããããã¯ïŒã¯ã©ã¹ïŒãšããŠæ§ç¯ã§ããèœåãæã«å ¥ããŸããïŒæ¬¡ã®ã¹ãããã§ã¯ããã®ã¯ã©ã¹ãããã«çºå±ããããã¯ããã¯ãåŠã³ãã³ãŒãã®åå©çšæ§ãç¡éã«é«ããŠãããŸãããïŒ

