javascript 에서 Object String format {aaa} 조건에 맞게 bind 한다.
"{aaa} 에서 {bbb} 까지 이동 하는데 걸리는 시간은 {ccc} 이다".bind({
aaa: '종로',
bbb: '광화문',
ccc: '10분'
})
인자 중 remove 위치의 값이 false 일 경우 매칭이 되지 않는 값은 삭제 하지 않는다.
기본 값은 true 이며 없을 경우 삭제된다.
String.prototype.bind = function(obj, remove) {
var argobj = obj;
var remove = remove !== false;
return this.replace(/\{\{|\}\}|\{(\w+)\}/g, function(m, n) {
if (m == "{{") {
return "{";
}
if (m == "}}") {
return "}";
}
return typeof argobj[n] == "undefined" ? ((remove) ? '' : m)
: typeof argobj[n] == 'function' ? argobj[n]()
: argobj[n];
});
}
bind 에 대입되는 object 에서 function 값도 처리 될 수 있게 되어 있다.
더 생각 하기 싫어서 그냥 여기까지만 쓴다.
댓글 없음:
댓글 쓰기