ํ์ฌ์ ์ธํด์ผ๋ก ์ ์ฌ๋ฅผ ํ๊ณ , ๋ํ๋๊ป์ ๊ณผ์ ํ๋๋ฅผ ์ฃผ์ จ์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ฐ๋จํ ๊ณ์ฐ๊ธฐ๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์ด๋ ต์ง ์๊ฒ ๊ตฌํ์ ํ์๊ณ , ๋ํ๋๊ป ๋ณด์ฌ๋๋ ธ์ต๋๋ค. ๊ณ์ฐ๊ธฐ ๊ธฐ๋ฅ ์์ฒด์๋ ๋ฌธ์ ๊ฐ ์ ํ์์์ผ๋.. ๊ณ์ฐ๊ธฐ๋ฅผ ๊ตฌํํ ์ฝ๋๋ฅผ ๋ณด์๊ณ ๋ ์ด๋ฐ ๋ง์ ํ์ จ์ต๋๋ค. ์์ง๋ ์ ํํ ๊ธฐ์ต๋ฉ๋๋ค. ์ฌ์ง์ด ๋งํฌ๊น์ง๋ ๊ธฐ์ต์ด ๋ฉ๋๋ค.
"์ฝ๋์ ์ฒ ํ์ด ๋ด๊ฒจ ์์ง ์์"
โป์ฒ์์ ์ ๊ฐ ๊ตฌํํ๋ ์ฝ๋์ ๋๋ค.
์ฝ๋๊ฐ ๋๋ฌด ๊ธธ์ด ๋งํฌ๋ก ๋์ฒดํฉ๋๋ค.
์ผํ๋ณด๋ฉด ๊ฐ๋ ์ฑ๋ ์๊ณ ๋๋ฆ๋๋ก ํจ์ํ๋ ์์ผ์ ๋ฌธ์ ๊ฐ ์์ด ๋ณด์ผ์ ์์ต๋๋ค. ํ์ง๋ง ๋ง์ฝ ๊ณ์ฐ๊ธฐ์ ๋๋จธ์ง๋ฅผ ๊ตฌํด์ฃผ๋ % ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ฃผ๊ณ ์ถ๋ค๋ฉด ๊ณ์ฐ ๊ด๋ จํ ๋ก์ง์ผ๋ก ๋ค์ด๊ฐ์ ๋ด๋ถ๋ฅผ ๋ฏ์ด๊ณ ์ณ์ผ ํฉ๋๋ค. ๋ฌผ๋ก ๊ณ์ฐ๊ธฐ ๊ด๋ จ ์ฝ๋๋ ๋ณต์กํ๊ณ ๊ธธ์ง ์์์ ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง ์ฌ๊ธฐ์ ๊ธฐ ์ข ์์ฑ์ ๊ฐ์ง๋ ํจ์๋ผ๋ฉด ์์ ์ ํฐ ๋ฌธ์ ๊ฐ ๋ ์๋ ์์ต๋๋ค.
๊ทธ๋ผ ๋ํ๋๊ป์ ๋ง์ํ์ ์ฒ ํ์ ์ธ ์ฝ๋๋ ๋ฌด์์ผ๊น์?
๊ฐ๋จํ ์๋ก "๋ณ์ค์ด๋ ์ถ๊ตฌ๋ฅผ ์ข์ํ๋ค.", "์ง์์ด๋ ๋ชฝ์ด๋ฅผ ์ฌ๋ํ๋ค." ๋ผ๋ ๋ฌธ์ฅ์ ์ฝ์์ ์ฐ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค.
์๋นํ ์ฌ์ด ์์ ์ ๋๋ค.
console.log("๋ณ์ค์ด๋ ์ถ๊ตฌ๋ฅผ ์ข์ํ๋ค.");
console.log("์ง์์ด๋ ๋ชฝ์ด๋ฅผ ์ฌ๋ํ๋ค.");
์ด๋ ๊ฒ ํ๋ฉด ์ฝ๊ฒ ์ฝ์์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ฅ์ ์ถ๋ ฅ์ํฌ ์ ์์ต๋๋ค. ๋ฌผ๋ก ์ด๊ฒ๋ ํ๋ฆฐ ๋ฐฉ๋ฒ์ ์ ๋ ์๋๋๋ค. ์ ๋ ๋ถ๊ณผ ๋ช ๋ฌ์ ๋งํด๋ ์ ๋ ๊ฒ ์ฝ๋๋ฅผ ์งฐ์ต๋๋ค. ํ์ง๋ง ์ ๋ ๊ฒ ์ฝ๋๋ฅผ ์งค ๊ฒฝ์ฐ ์ฌ์ฌ์ฉ์ ๋ฌผ๋ก ์ ์ง๋ณด์๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
(์์ฃผ ๊ฐ๋จํ ์์ ์ด๊ธฐ์ ์ ์ฝ๋๋ฅผ ์ ์ง๋ณด์ ํ ํ์๋ ์ฌ์ฌ์ฉ ํ ํ์๋ ์๊ฒ ์ง๋ง..)
๋ง์ฝ "๋ณ์ค์ด๋ ์ถ๊ตฌ๋ฅผ ์ข์ํ๋ค"์์ "์ง์์ด๋ ์ถ๊ตฌ๋ฅผ ์ข์ํ๋ค"๋ก ๋ฐ๊พธ๊ณ ์ถ๋ค ํ๋ฉด, console.log()์์ ๋ฌธ์์ด์ ์ง์ ๋ฐ๊ฟ์๋ ์๊ฒ ์ง๋ง ์ ์ฝ๋๊ฐ ์๋นํ ๋ณต์กํ ๋ก์ง์ ๊ฐ์ง ์ฝ๋๋ผ๊ณ ์๊ฐํด๋ด ์๋ค. ์ฌ๊ธฐ์ ๊ธฐ ์ฝ๋๊ฐ ์ฝํ์์ด์ ์์นซ ์๋ชป์์ ํ๋ฉด ํ๋ก๊ทธ๋จ ์์ฒด๊ฐ ๋ค์ด ๋ ์ ์์ต๋๋ค.
๋ ์ด๋ฒ์๋ ์ ์์ ์๋ 2๊ฐ์ ๋ฌธ์ฅ์ด ์๋ "๋ชฝ์ด๋ ๊ฐ์์ ์ข์ํ๋ค"๋ผ๋ ๋ฌธ์ฅ์ ์ถ๋ ฅํ๊ณ ์ถ์ต๋๋ค. console.log()๋ก ์ถ๋ ฅํ๋ฉด ๋์ง ์๋๋? ํ์ค์๋ ์๊ฒ ์ง๋ง ์ญ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋นํ ๋ณต์กํ ๋ก์ง์ ๊ฐ์ง ์ฝ๋๋ผ๊ณ ์๊ฐํด๋ด ์๋ค. ์ด ๋ํ ์ฝ๋๊ฐ ์ฝํ์์ด์ ์๋ก์ด ๋ก์ง์ ์ถ๊ฐํ๊ธฐ๋ ์ฝ์ง ์์ ๊ฒ์ ๋๋ค.
์ฝ๊ฒ ๋งํด, ์ฒ ํ์ ์ด์ง ์์ ์ฝ๋๋
- ์ฌ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค
- ์ ์ง๋ณด์๊ฐ ๋ถ๊ฐ๋ฅํ๋ค
- ์ฝ๋๊ฐ ๋ง์์ง ๊ฒฝ์ฐ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค.
๋ฐ๋๋ก ์ฒ ํ์ ์ธ ์ฝ๋๋?
- ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค
- ์ ์ง๋ณด์๊ฐ ์ฝ๋ค
- ๊ฐ๋ ์ฑ์ด ์ข๋ค
์ฝ๋์ ์ฒ ํ์ ๋ด๋ค!
์ฌ์ฌ์ฉ๊ณผ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋ ค๋ฉด ์ฐ์ ํจ์๊ฐ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ผํฉ๋๋ค.
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋๋์์ต๋๋ค.
Language๋ผ๋ ๋ฌธ์ฅ์ ๋ง๋ค์ด์ฃผ๋ ํจ์
// ๋ฌธ์ฅ์ ๋ง๋ค์ด์ฃผ๋ ํจ์
function language() {
var _this = this;
$(function(){
_this.init();
_this.subject();
_this.verb();
_this.object();
});
}
language.prototype = {
init : function(){
console.log("lanaguage ๊ฐ์ฒด ์์ฑ");
},
subject: function () {
var sub_obj = {
bj: "๋ณ์ค์ด๋",
jw: "์ง์์ด๋"
}
return sub_obj;
},
verb: function () {
var verb_obj = {
like: "์ข์ํ๋ค",
love: "์ฌ๋ํ๋ค"
}
return verb_obj;
},
object: function () { //๋ชฉ์ ์ด
var obj_obj = {
soccer: "์ถ๊ตฌ๋ฅผ",
puppy: "๋ชฝ์ด๋ฅผ"
}
return obj_obj;
}
}<
Language.prototype ์์ ๋ด๋ถ ํจ์๋ก ๊ฐ๊ฐ ์ฃผ์ด, ๋์ฌ, ๋ชฉ์ ์ด์ ํด๋นํ๋ ๊ฐ์ฒด ํจ์๋ฅผ ๋ง๋ค์๊ณ , ๋ ๊ทธ ํจ์ ์์์ ํ์ํ ๊ฐ ๋จ์ด๋ค์ ๊ฐ์ฒด๋ก ๋ง๋ค์ด์ฃผ์์ต๋๋ค.
showLog๋ผ๋ ์ฝ์์ ์ฐ์ด์ฃผ๋ ํจ์๋ฅผ ๊ฐ์ง ๊ฐ์ฒด
//console์ ์ฐ์ด์ฃผ๋ ํจ์๋ฅผ ๊ฐ์ง ๊ฐ์ฒด
var showLog = {
init : function(){
}
,consoleLog : function(sub, verb, obj){
console.log(sub +" "+obj +" "+ verb);
}
}
์ฝ์์ ์ฐ์ด์ค ๊ธฐ๋ฅ์ ๊ฐ์ฒด(showLog)๋ก ๊ตฌํํ์๊ณ , ๊ฐ์ฒด๊ฐ consoleLog๋ผ๋ ํจ์๋ฅผ ๊ฐ๊ฒ ํ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ํ๋์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ์์ต๋๋ค.
var newLanguage = new language();
var sub = newLanguage.subject();
var verb = newLanguage.verb();
var obj = newLanguage.object();
showLog.consoleLog(sub.bj, verb.like, obj.soccer);
showLog.consoleLog(sub.jw, verb.love, obj.puppy);
์์ฑ์๋ฅผ ํตํด ์ฃผ์ด, ๋์ฌ, ๋ชฉ์ ์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ฃผ์๊ณ , ๋ง๋ค์ด์ง ๊ฐ์ฒด๋ค์ ํด๋นํ๋ ํจ์๋ฅผ ์ง์ ํ ํ ๋ณ์๋ฅผ ์ฌ์ ์ํ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ showLog ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ์์ต๋๋ค.
์๋ก์ด ๋ฌธ์ฅ์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด?
๋ง์ฝ ์๋ก์ด ๋ฌธ์ฅ์ธ "๋ชฝ์ด๋ ์ง์์ด๋ฅผ ์ข์ํ๋ค"๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ์๋ ์ฝ๋์ ๊ฐ์ด ํด๋น ์ฃผ์ด, ๋์ฌ, ๋ชฉ์ ์ด ๊ฐ์ฒด ํจ์์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
language.prototype = {
init : function(){
console.log("lanaguage ๊ฐ์ฒด ์์ฑ");
},
subject: function () {
var sub_obj = {
bj: "๋ณ์ค์ด๋",
jw: "์ง์์ด๋",
puppy : "๋ชฝ์ด๋" //=> ์ถ๊ฐ
}
return sub_obj;
},
verb: function () {
var verb_obj = {
like: "์ข์ํ๋ค",
love: "์ฌ๋ํ๋ค"
}
return verb_obj;
},
object: function () { //๋ชฉ์ ์ด
var obj_obj = {
soccer: "์ถ๊ตฌ๋ฅผ",
puppy: "๋ชฝ์ด๋ฅผ",
jw : "์ง์์ด๋ฅผ" //=> ์ถ๊ฐ
}
return obj_obj;
}
}
์ฆ, ์ด์ ๊ฐ์ด ์ฝ๋๋ฅผ ๊ตฌ์ฑํจ์ผ๋ก์จ ๋ก์ง ๋ด ๊ฒฐํฉ๋๊ฐ ๋จ์ด์ ธ, ์ฌ์ฌ์ฉ๊ณผ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํด์ง๋๋ค.
์ต๋ํ ์ฒ ํ์ ๋ด์ ์ ์๋๋ก ์ฝ๋๋ฅผ ๊ตฌํํ์์ง๋ง ์์ง ๋ง์ด ๋ถ์กฑํฉ๋๋ค ใ ใ
prototype์ ๊ดํด ๊ถ๊ธํ๋ค๋ฉด ์๋ ๋งํฌ๋ก ๊ฐ์๋ฉด ๋ฉ๋๋ค.
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋กํ ํ์ ์ดํดํ๊ธฐ with ํ๋กํ ํ์ ์ฒด์ธ (2) | 2020.12.17 |
---|---|
[DB] ์ ํ, ๋ฐ์ ํ, ๋น์ ํ ๋ฐ์ดํฐ (1) | 2020.12.16 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๊ฐ๋ (1) | 2020.12.16 |
[Node.js] Express-generator ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๊ฒฝ ๋ง๋ค๊ธฐ (0) | 2020.12.14 |
[Node.js] bcrypt๋ก ๋น๋ฐ๋ฒํธ ์ํธํ ํ๊ธฐ (0) | 2020.12.14 |