ð€¯ åºæïŒã¯ã©ã¹ãªã®ã«ãå®äœãããããªãæ©èœïŒ
ååãç¶æ¿ã䜿ã£ãŠå¹ççã«æ°ããã¯ã©ã¹ãäœãæ¹æ³ãåŠã³ãŸãããããã§ããªãã®ã¯ã©ã¹èšèšã¹ãã«ã¯ããçŽã§ããããããããã§äžã€ã®çåãæµ®ãã³ãŸãã
ãç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ã«äŸåããªãæ©èœã¯ãã©ãã«æžãã¹ããïŒã
äŸãã°ãUserã¯ã©ã¹ããã£ããšããŠãããŠãŒã¶ãŒå
šå¡ã®ç·æ°ãæ°ããæ©èœããããã¡ãŒã«ã¢ãã¬ã¹ãæ£ãã圢åŒããã§ãã¯ããæ©èœãã¯ãaliceãããbobãããšãã£ãåã
ã®ã€ã³ã¹ã¿ã³ã¹ãæã€ã¹ãæ©èœã§ããããïŒéããŸããããããã¯ã¯ã©ã¹å
šäœãæã€ã¹ãæ©èœã§ãã
JavaScriptã§ã¯ããã®ãããªãã€ã³ã¹ã¿ã³ã¹ïŒå®äœïŒãäœãå¿ èŠããªããã¯ã©ã¹çŽå±ã®æ©èœããå®è£ ããããã«**éçïŒStaticïŒ**ãªã¡ã³ããŒã䜿ããŸããããããã³ãŒãã®èšèšã極éãŸã§æŽç·Žãããããã®é ãæã§ãïŒ
1. âïž éçã¡ãœããïŒStatic MethodsïŒïŒã¯ã©ã¹çŽå±ã®ãéå ·ã
éçã¡ãœããã¯ããã®ååã®éãã**static**ããŒã¯ãŒããä»ããŠå®çŸ©ãããŸãã
- ç¹åŸŽ: ã¯ã©ã¹ã
newããŒã¯ãŒãã§ã€ã³ã¹ã¿ã³ã¹åããããšãªããã¯ã©ã¹åã«çŽæ¥ãããïŒ.ïŒãä»ããŠåŒã³åºãããšãã§ããŸãã - çšé: å ±éã®ãŠãŒãã£ãªãã£é¢æ°ããã€ã³ã¹ã¿ã³ã¹ãäœæããããã®ãã«ããŒé¢æ°ãªã©ãåã ã®ã€ã³ã¹ã¿ã³ã¹ã®ç¶æ ã«äŸåããªãåŠçã«äœ¿ãããŸãã
ð éçã¡ãœããã®å®çŸ©ãšäœ¿ãæ¹
JavaScript
class Validator {
// staticããŒã¯ãŒããä»ããŠå®çŸ©
static isValidEmail(email) {
// ã¡ãŒã«ã¢ãã¬ã¹åœ¢åŒã®ãã§ãã¯åŠçïŒç°¡ç¥åïŒ
return email.includes('@') && email.includes('.');
}
static isValidPassword(password) {
return password.length >= 8;
}
}
// åŒã³åºãæ¹ïŒã€ã³ã¹ã¿ã³ã¹åã¯äžèŠïŒ
const emailResult = Validator.isValidEmail("test@example.com");
console.log("Eã¡ãŒã«ã¯æå¹ã§ããïŒ:", emailResult); // çµæ: Eã¡ãŒã«ã¯æå¹ã§ããïŒ: true
// â 誀ã£ãäœ¿ãæ¹: ã€ã³ã¹ã¿ã³ã¹ããã¯åŒã³åºããªã
// const checker = new Validator();
// checker.isValidEmail("a"); // â ãšã©ãŒã«ãªã
Validator.isValidEmail()ã®ããã«ãã¯ã©ã¹åã«çŽæ¥ããããä»ããŠåŒã³åºãã®ãéçã¡ãœããã®æå€§ã®ç¹åŸŽã§ãã
2. ð¢ éçããããã£ïŒStatic PropertiesïŒïŒã¯ã©ã¹å ±éã®ãããŒã¿ã
éçããããã£ã¯ãã¯ã©ã¹å
šäœã§å
±æãããããŒã¿ïŒå®æ°ãã«ãŠã³ã¿ãŒãªã©ïŒãæ ŒçŽããããã«äœ¿ãããŸãããããstaticããŒã¯ãŒããä»ããŠå®çŸ©ããŸãã
ð éçããããã£ã®å®çŸ©ãšäœ¿ãæ¹
éçããããã£ã¯ããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã§å ±éã®å€ãä¿æããŸãã
JavaScript
class User {
// éçããããã£ã®å®çŸ© (ã¯ã©ã¹å
±éã®ããŒã¿)
static userCount = 0;
static MAX_USERS = 100;
constructor(name) {
this.name = name;
// ãŠãŒã¶ãŒãäœæããããã³ã«ãã¯ã©ã¹å
±éã®ã«ãŠã³ã¿ãŒãå¢ãã
User.userCount++;
}
static getCurrentUserCount() {
return User.userCount;
}
}
// ãŠãŒã¶ãŒãäœæãã
const alice = new User("Alice");
const bob = new User("Bob");
// åŒã³åºãæ¹ïŒã¯ã©ã¹å
šäœã§ããŒã¿ãå
±æãããŠãã
console.log("çŸåšã®ãŠãŒã¶ãŒç·æ°:", User.getCurrentUserCount()); // çµæ: 2
console.log("æå€§ãŠãŒã¶ãŒæ°:", User.MAX_USERS); // çµæ: 100
ãã®äŸã®ããã«ãUser.userCountã¯aliceã§ãbobã§ããªããUserã¯ã©ã¹å
šäœã«çŽã¥ããŠãããããã€ã³ã¹ã¿ã³ã¹ãããã€äœãããŠãå
±éã®ã«ãŠã³ã¿ãŒãšããŠæ©èœããŸãã
3. ð§ éçã¡ãœãããšã€ã³ã¹ã¿ã³ã¹ã¡ãœããã®äœ¿ãåã
ã¯ã©ã¹èšèšã«ãããŠãã©ã®ã¡ãœãããstaticã«ãããïŒéçã¡ãœããïŒãšãããã§ãªããïŒã€ã³ã¹ã¿ã³ã¹ã¡ãœããïŒã®å€æã¯éåžžã«éèŠã§ãã
| ã¡ãœããã®çš®é¡ | ç¹åŸŽ | åŒã³åºãæ¹ | äŸ |
| ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã | åã
ã®ããŒã¿ïŒthisïŒã䜿ãå¿
èŠãããã | alice.login() | aliceå人ã®ãã°ã€ã³åŠç |
| éçã¡ãœãã | åã ã®ããŒã¿ã䜿ããªããã¯ã©ã¹å ±éã®åŠçã | User.isValidEmail() | ã©ã®ãŠãŒã¶ãŒã«ãå ±éã®ã¡ãŒã«ãã§ãã¯åŠç |
Google ã¹ãã¬ããã·ãŒãã«ãšã¯ã¹ããŒã
ã«ãŒã«: ã¡ãœããå
ã§**this**ïŒåã
ã®ã€ã³ã¹ã¿ã³ã¹ã®ããŒã¿ïŒã䜿ããªããªããããã¯éçã¡ãœãããšããŠå®çŸ©ãã¹ãã§ãã
ð ãŸãšãïŒstaticã§ã¯ã©ã¹èšèšãèžè¡ã«ïŒ
éçã¡ã³ããŒã¯ãããªãã®ã¯ã©ã¹èšèšã次ã®ã¬ãã«ã«åŒãäžããããã®åŒ·åãªããŒã«ã§ãã
staticããŒã¯ãŒãïŒã¯ã©ã¹çŽå±ã®ã¡ã³ããŒã§ããããšã瀺ãã- éçã¡ãœããïŒã€ã³ã¹ã¿ã³ã¹åããã«ã
ClassName.method()ã§åŒã³åºãå ±é颿°ã - éçããããã£ïŒ
ClassName.propertyã§ã¢ã¯ã»ã¹ãããã¯ã©ã¹å šäœã§å ±æãããããŒã¿ã
ãã®staticã®æŠå¿µã䜿ãããªãã°ãããªãã®ã³ãŒãã¯æ©èœããšã«çŸããåé¢ããã誰ãèŠãŠãåãããããã**ãç©¶æ¥µã«æŽç·Žãããèšèšã**ãæã€ããã«ãªãã§ãããïŒããã§ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®åºç€ãšå¿çšã¯å®ç§ã§ãã

