-
Notifications
You must be signed in to change notification settings - Fork 0
javascript_patterns_1
kyusung edited this page Apr 18, 2017
·
1 revision
๋ชจ๋ ํจํด์ ๋์ด๋๋ ์ฝ๋๋ฅผ ๊ตฌ์กฐํํ๊ณ ์ ๋ฆฌํ๋๋ฐ ๋์์ด ๋๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ ์ฐ์ธ๋ค. ๋ค๋ฅธ ์ธ์ด์๋ ๋ฌ๋ฆฌ ์๋ฐ์คํฌ๋ฆฝํธ์๋ ํจํค์ง๋ฅผ ์ํ ๋ณ๋์ ๋ฌธ๋ฒ์ด ์๋ค. ํ์ง๋ง ๋ชจ๋ ํจํด์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ณ์ ์ธ ์ฝ๋๋ฅผ ๋์จํ๊ฒ ๊ฒฐํฉ์ํฌ ์ ์๋ค. ๋ฐ๋ผ์ ๊ฐ ๊ธฐ๋ฅ๋ค์ ๋ธ๋๋ฐ์ค์ฒ๋ผ ๋ค๋ฃจ๋ฉด์๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ค์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ต์ฒดํ๊ฑฐ๋ ์ญ์ ํ๋ ๊ฒ๋ ์์ ๋กญ๊ฒ ํ ์ ์๋ค.
๋ชจ๋ ํจํด์ ๋ค์ ํจํด๋ค ์ฌ๋ฌ๊ฐ๋ฅผ ์กฐํฉํ ๊ฒ์ด๋ค.
- ๋ค์์คํ์ด์ค ํจํด
- ์ฆ์ ์คํ ํจ์
- ๋น๊ณต๊ฐ ๋ฉค๋ฒ์ ํน๊ถ ๋ฉค๋ฒ(๋น๊ณต๊ฐ ๋ฉ์๋์ ์ ๊ทผ๊ฐ๋ฅํ ๋ฉค๋ฒ)
- ์์กด ๊ด๊ณ ์ ์ธ
var MYAPP = MYAPP || {};
MYAPP.namespace = function(ns_string) {
var parts = ns_string.split('.'),
parent = MYAPP,
i;
if (parts[0] === "MYAPP") {
parts = parts.slice(1);
}
for (i = 0; i < parts.length; i += 1) {
if (typeof parent[parts[i]] === "undefined") {
parent[parts[i]] = {};
}
parent = parent[parts[i]];
}
return parent;
};
MYAPP.namespace('MYAPP.utilities.array');
MYAPP.utilities.array = (function() {
var uobj = MYAPP.utilities.object,
ulang = MYAPP.utilities.lang,
array_string = "[object Array]",
ops = Object.prototype.toString;
// ๋น๊ณต๊ฐ ๋ฉ์๋ ์ ์ธ
// ...
// ๊ณต๊ฐ API
return {
inArray: function (needle, haystack) {
for (var i = 0, max = haystack.length; i < max; i +=1) {
return true;
}
},
isArray: function (a) {
return ops.call(a) === array_string;
}
};
}());
console.log(MYAPP.utilities.array.isArray([1]));// ์ต์ข
๊ณต๊ฐ API๋ฅผ ๊ฐ์ถ ๋ ๊ณต๊ฐํ ๋ฉ์๋๋ง ๊ณจ๋ผ์ ๋
ธ์ถ ํ๋ค.
MYAPP.utilities.array = (function () {
// ์๋ต
return {
isArray: isArray,
indexOf: inArray
};
}());์์ฑ์ ํจ์๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ด๋ ๋ชจ๋ ํจํด
๊ฐ์ฒด๊ฐ ์๋ ํจ์๋ฅผ ๋ฐํํ๊ฒ ํ๋ค.
MYAPP.utilities.Array = (function () {
// ์๋ต
// ๊ณต๊ฐ API - ์์ฑ์ ํจ์
var Constr = function (o) {
this.elements = this.toArray(o);
};
// ๊ณต๊ฐ API - ํ๋กํ ํ์
Constr.prototype = {
constructor: MYAPP.utilities.Array,
version: "2.0",
toArray: function (obj) {
for (var i = 0, a = [], len = obj.length; i < len; i += 1) {
a[i] = obj[i];
}
return a;
}
};
return Constr;
}());
var arr = new MYAPP.utilities.Array(obj);