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@.

Posted by killofki
,