アプリケーションãŒå¤§ãããªã‚‹ã¨JavaScriptã®ä¿å®ˆæ€§ãŒæ‚ªããªã£ã¦ãã¾ã™ã€‚。特ã«æ¥å‹™ã‚·ã‚¹ãƒ†ãƒ ã®å ´åˆã€ä½•ä¸‡ã‚³ãƒ¼ãƒ‰ã®JavaScriptãŒå…ƒæ°—ã«çµ¡ã¿åˆã„ãªãŒã‚‰å‹•ã„ã¦ã„ã¾ã™ã€‚ 開発åˆæœŸã‹ã‚‰ä¿å®ˆæ€§ã‚„å¯èªæ€§ã‚’æ°—ã«ã—ã¦ã„ã‚Œã°è‰¯ã‹ã£ãŸã®ã§ã™ãŒã€ã©ã†ã—ã¦ã‚‚開発当åˆã¯ãƒ‡ã‚¹ãƒžã«ãªã‚‹ã®ãŒSIã®å¸¸ã§ã—ょã†ã‹ã€‚。ãã®å ´åˆã€Œå‹•ã‘ã°OKã€ãªãƒŽãƒªã§ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã—ã¦ã—ã¾ã„ã¾ã™ã€‚。
ã¨ã¯è¨€ã†ã‚‚ã®ã®ã€ç§ãŸã¡ã¯æ˜Žã‚‹ã„未æ¥ã«å‘ã‹ã£ã¦æ©ã¾ãªã„ã¨ã„ã‘ã¾ã›ã‚“。ãã†ã„ã£ãŸè² 債を返å´ã—ã¦ã„ãå¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚
ã¨ã„ã†ã“ã¨ã§ã€çµ¡ã¿åˆã£ãŸã‚½ãƒ¼ã‚¹ã‚’ã“れ以上ã²ã©ããªã‚‰ãªã„よã†ã«å¯¾å‡¦ã™ã‚‹ã¨ãã€åŠ¹æžœçš„ãªã®ãŒãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£ã‚¯ãƒ©ã‚¹ã®ä½œæˆã€‚コピペã§å¤§é‡ã«ä½œæˆã•ã‚ŒãŸå‡¦ç†é”ã¯ãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£ãƒ¡ã‚½ãƒƒãƒ‰ã¨ã—ã¦æ‰±ã†ã“ã¨ãŒã§ããã†ã§ã™ã€‚
ユーティリティクラスã¯staticãªãƒ¡ã‚½ãƒƒãƒ‰ã®é›†ã¾ã‚Šã§ã™ã®ã§ã€ã“ã‚“ãªæ„Ÿã˜ã§æ›¸ã„ã¦ã„ã¾ã™ã€‚
var AClassUtils = function(){};
AClassUtils.methodA = function() {
alert('methodA');
}
AClassUtils.methodB = function() {
alert('methodB');
}
JSãŒè‚¥å¤§åŒ–ã—ã¦ã„ãã¨ã€ã©ã†ã—ã¦ã‚‚ä¼¼ãŸå‡¦ç†ãŒå‡ºã¦ãã¾ã™ã。引数ã«ãƒ•ãƒ©ã‚°ã‚’渡ã—ã¦ãƒ¡ã‚½ãƒƒãƒ‰ã®ä¸ã§ã¡ã‚‡ã“ã–ã„ãªåˆ†å²å…¥ã‚ŒãŸã‚Šã™ã‚‹ã®ã¯å«Œã§ã™ã€‚。ãã‚“ãªæ™‚ã®ãŸã‚ã«ç¶™æ‰¿ã‚’ç™»å ´ã•ã›ã¦ã„ã¾ã™ã€‚
var XClassUtils = function(){};
XClassUtils.methodA = function() {
alert('methodXA');
}
XClassUtils.methodB = function() {
alert('methodXB');
}
var YClassUtils = $.extend(true, function(){}, XClassUtils);
YClassUtils.methodA = function() {
XClassUtils.methodA();
alert('methodYA');
}
YClassUtils.methodC = function() {
alert('methodYC');
}
ã“ã†ã„ã£ãŸã‚„り方を継承ã¨å‘¼ã‚“ã§è‰¯ã„ã‹åˆ†ã‹ã‚Šã¾ã›ã‚“ãŒã€ã¨ã‚Šã‚ãˆãšè¦ªã‚¯ãƒ©ã‚¹ã®é™çš„メソッドを兼ãå‚™ãˆãŸåクラスを作りãŸã‹ã£ãŸã®ã§ç›®çš„ã¯ã“ã‚Œã§æžœãŸã›ã¾ã™ã€‚
ã‚モã¯$.extendを使用ã—ã¦è¦ªã‚¯ãƒ©ã‚¹ã‚’コピーã™ã‚‹ã¨ã“ã‚ã§ã—ょã†ã‹ã€‚ãã†ã™ã‚Œã°åクラスを拡張ã—ã¦ã‚‚親クラスã¯ä½•ã‚‚影響ã—ãªã„ã§ã™ã‹ã‚‰ã。
ã¡ãªã¿ã«ä¸Šè¨˜ä¾‹ã®YClassUtilsクラスã®å„メソッドã®å‹•ä½œã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
・YClassUtils.methodA:親クラスXClassUtilsã®methodAを実行ã—ã¦ã€alert('methodYA')を実行
・YClassUtils.methodB:親クラスXClassUtilsã®methodBを実行
・YClassUtils.methodC:alert('methodYC')を実行
JavaScriptã®ä¸–ç•Œã¯å¥¥ãŒæ·±ã„ã®ã§æ—¥ã€…勉強ã¨å®Ÿè·µãŒå¿…è¦ãã†ã§ã™ã€‚ã§ã‚‚知れã°çŸ¥ã‚‹ã»ã©è‰¯ã„解決ç–ãŒè¦‹ã¤ã‹ã‚Šãã†ãªã®ã§ãã‚ŒãŒã‚„ã£ã¦ã„ã¦æ¥½ã—ã„ã§ã™ã。