낮에 delete function 에 대해 궁금한 사항을 올린 적이 있는데...
시험을 해봤다... (귀차니즘 타파!)
...
<script>
var a=new Array(), b, c;
b=a[0]=function() { alert(0); }
c=a[1]=function() { alert(1); }
delete a[0];
if (b) b();
if (c) c();
</script>
...
해보니... function 자체가 "복사되는" 형태로 스며들었기 때문에
b 와 c 모두 실행이 되었다.
결국... function 선언은 object 를 만들고,
b 와 c 는 object 통째로 복사하는 형태가 된 것.
그리고, delete 는 element 항목...을 삭제하는 역할.
*참고* var ... 로 선언한 경우, ... 글쎄... document[...] 의 형태라고 봐야하나...
...
혹시나...싶어서 거꾸로도 해봤다.
...
<script>
var a=new Array(), b, c;
b=a[0]=function() { alert(0); }
c=a[1]=function() { alert(1); }
delete b;
if (a[0]) a[0]();
if (a[1]) a[1]();
</script>
...
역시 결과는 마찬가지...
물론, b 로 받아서 a[0] 에게 넘겨준 형태는 아니지만,
각각이 하나를 통째로 받아들이는 형태가 된 것은 확실하다.
... 그건 그렇고...
function 내부에 있는 것을 바꾸려 한다면... object 를 다시 공부해야하나...?
NowMark killofki@.
'baseJavascript' 카테고리의 다른 글
select & option] 입력/선택된 값을 꼭대기로 올릴 때...2 (0) | 2010.04.20 |
---|---|
select & option] 옵션을 추가/삭제할 때... (버그 포함) (0) | 2010.04.16 |
IE] 한 폴더 내에서 수정한 파일(이미지/스크립트)을 연동해서 보고싶을 때 "다른 이름으로 저장" (0) | 2010.03.06 |
delete 가 실제 메모리에 적용되는 타이밍 (IE 8) (0) | 2010.03.03 |
Array 안쪽의 내용 delete 하기... (0) | 2010.02.18 |