1)
기존에 w() 함수(document.write 를 간편히 쓸 때 쓰려고..)를 만들어 자주 써왔던 입장에서,
String Object 에 좀 더 쉬운 접근이 있다면..하는 생각으로 서술해봤습니다.
String.prototype 에 함수를 선언해서
이후(?) 처리될 값들에게는 쓰게 된다는 것을 확인하는 내용입니다.
...
2)
<html><head></head><body>
<div id=output120901_1 ></div>
<script>
(function() {
var
a, b, c
, ov='';
// test of String..
ov+='<'+'br/><'+'br/> ** start test of String.. ';
a='a';
c='c';
ov+='<'+'br/> a.k120901_1:'+a.k120901_1;
ov+='<'+'br/> c.k120901_1:'+c.k120901_1;
String.prototype.k120901_1=function () {
};
ov+='<'+'br/> ** set prototype.k120901_1 on String object ** ';
b='b';
ov+='<'+'br/> a.k120901_1:'+a.k120901_1;
ov+='<'+'br/> c.k120901_1:'+c.k120901_1;
ov+='<'+'br/> b.k120901_1:'+b.k120901_1;
a+=c;
ov+='<'+'br/> (a+=c).k120901_1:'+a.k120901_1;
var x;
// test of Array
ov+='<'+'br/><'+'br/> ** start test of Array.. ';
a=['a'];
c=['c'];
ov+='<'+'br/> a.k120901_2:'+a.k120901_2;
ov+='<'+'br/> a.k120901_2:'+a.k120901_2;
Array.prototype.k120901_2=function() {
};
ov+='<'+'br/> ** set prototype.k120901_2 on Array object ** ';
b=['b'];
ov+='<'+'br/> a.k120901_2:'+a.k120901_2;
ov+='<'+'br/> c.k120901_2:'+c.k120901_2;
ov+='<'+'br/> b.k120901_2:'+b.k120901_2;
a=a.concat(c);
ov+='<'+'br/> (a.concat(c)).k120901_2:'+a.k120901_2+' '+a;
x=document.getElementById('output120901_1').innerHTML=ov;
})();
</script>
</body></html>
...
3)
...
4)
맨 처음에는 함수 선언이 안되어있으니 함수의 존재 여부는 undefined 가 되고,
이후
부여된 스트링과,
스트링에 적용된 함수, 그리고
스트링이 가지고 있는 함수..등에 적용해서
최종값에 prototype 으로 선언된 함수가 연계되어있는지 확인인해보니(?)
잘 존재한다는거죠.
...
5)
물론, 이런류의 선언이 좀 위험(?)할 수 있습니다.
기존 함수와 이름중복등으로 충돌 할 수도 있구요..
압축할 스트링이나, 압축된 스트링을 가공하는 데 필요한(?)
코드줄이기, 코드 활용하기..등에 쓰기 좋겠다는 생각을 하게 되네요.
*참고*
요 코드 만든 날 적어놓은 노트입니다.
http://c.cyworld.com/17126625/note/771342
easyBow killofki@.
기존에 w() 함수(document.write 를 간편히 쓸 때 쓰려고..)를 만들어 자주 써왔던 입장에서,
String Object 에 좀 더 쉬운 접근이 있다면..하는 생각으로 서술해봤습니다.
String.prototype 에 함수를 선언해서
이후(?) 처리될 값들에게는 쓰게 된다는 것을 확인하는 내용입니다.
...
2)
<html><head></head><body>
<div id=output120901_1 ></div>
<script>
(function() {
var
a, b, c
, ov='';
// test of String..
ov+='<'+'br/><'+'br/> ** start test of String.. ';
a='a';
c='c';
ov+='<'+'br/> a.k120901_1:'+a.k120901_1;
ov+='<'+'br/> c.k120901_1:'+c.k120901_1;
String.prototype.k120901_1=function () {
};
ov+='<'+'br/> ** set prototype.k120901_1 on String object ** ';
b='b';
ov+='<'+'br/> a.k120901_1:'+a.k120901_1;
ov+='<'+'br/> c.k120901_1:'+c.k120901_1;
ov+='<'+'br/> b.k120901_1:'+b.k120901_1;
a+=c;
ov+='<'+'br/> (a+=c).k120901_1:'+a.k120901_1;
var x;
// test of Array
ov+='<'+'br/><'+'br/> ** start test of Array.. ';
a=['a'];
c=['c'];
ov+='<'+'br/> a.k120901_2:'+a.k120901_2;
ov+='<'+'br/> a.k120901_2:'+a.k120901_2;
Array.prototype.k120901_2=function() {
};
ov+='<'+'br/> ** set prototype.k120901_2 on Array object ** ';
b=['b'];
ov+='<'+'br/> a.k120901_2:'+a.k120901_2;
ov+='<'+'br/> c.k120901_2:'+c.k120901_2;
ov+='<'+'br/> b.k120901_2:'+b.k120901_2;
a=a.concat(c);
ov+='<'+'br/> (a.concat(c)).k120901_2:'+a.k120901_2+' '+a;
x=document.getElementById('output120901_1').innerHTML=ov;
})();
</script>
</body></html>
...
3)
...
4)
맨 처음에는 함수 선언이 안되어있으니 함수의 존재 여부는 undefined 가 되고,
이후
부여된 스트링과,
스트링에 적용된 함수, 그리고
스트링이 가지고 있는 함수..등에 적용해서
최종값에 prototype 으로 선언된 함수가 연계되어있는지 확인인해보니(?)
잘 존재한다는거죠.
...
5)
물론, 이런류의 선언이 좀 위험(?)할 수 있습니다.
기존 함수와 이름중복등으로 충돌 할 수도 있구요..
압축할 스트링이나, 압축된 스트링을 가공하는 데 필요한(?)
코드줄이기, 코드 활용하기..등에 쓰기 좋겠다는 생각을 하게 되네요.
*참고*
요 코드 만든 날 적어놓은 노트입니다.
http://c.cyworld.com/17126625/note/771342
easyBow killofki@.
'baseJavascript' 카테고리의 다른 글
strongType] ..의 구현에 살짝 접근해보고 싶었습니다. (0) | 2012.12.16 |
---|---|
String, Array] Array 객체까지 prototype 추가 테스트입니다. (0) | 2012.11.30 |
Function.apply ] chr 함수를 더 짧게 만들어봤습니다. (0) | 2012.07.06 |
var] 이렇게 선언하면 안된다고 하네요.. (0) | 2012.06.06 |
prototype] 쉽게(?) 설정하자면.. (0) | 2012.06.04 |