A라는 클래스의 멤버함수(*)인 getter 및 setter를 jQuery 스타일로 만들어 보자.
즉, propertyName(value)면 propertyName이 value로 세팅되고,
propertyName() 하면 propertyName 값을 반환한다.
//ctor
function A() {
this.element = $('<div/>').appendTo('body');
}
A.prototype.X = function(x) { // #
if(x!=undefined) { // setter
this.element.attr("x", x);
}
else {
return this.element.attr("x");
}
}
Remarks
1. 함수 하나가 리턴 값을 가졌다 안 가졌다 하고, 입력 개수 체크도 안 하는 막장스러운 js의 성질 덕분에 이런 멋있는 일을 할 수 있다.
2. 그냥 this._x = x; 이런 식으로 쓸 수도 있는데 굳이 DOM에 attribute로 추가하려고 해 보았다.
* js에는 원래 클래스 개념이 없으므로 사실 멤버 함수 흉내를 낸 거지만.
# 먼 미래에 js를 까먹었을 때를 대비해서 써놓자면, prototype은 js의 키워드이다.
Subscribe to:
Post Comments (Atom)
"Gossip Girl" star Michelle Trachtenberg dies at 39
미셸 트랙튼버그 하우스에서 심장 이식 받았던 환자로 나왔는데 현실에서는 간이식을 받았었구나 가십걸이나 버피더뱀파이어슬레이어 이제 정주행해 볼까... 블로그도 다시 살려 볼까 훠훠

-
텍스트박스에서 엔터를 치면 자동으로 입력되게 하려고 keyup 이벤트 핸들러를 등록했다. 잘 동작하는 듯했는데 alert창을 닫아도 닫아도 계속 열리는 것이다. 크롬이어서 다행이지 IE였으면 무한히 열렸을 거야...스페이스바로 눌러보길 잘했...
-
MathJax è Word MS Word 2007부터는 MathML을 문서에 바로 붙여넣을 수 있다. 이 블로그의 거의 대부분의 수식은 MathJax로 작성되어 있는데, 오른쪽 버튼 클릭하고 메뉴에서 MathML 또는 TeX 형식으로 ex...
-
진짜 되는 건 아니고 흉내낼 수는 있다. 새 창을 누르면 아무 것도 안 변한 것 같지만 PowerPoint 창 제목이 바뀌어 있다: 프레젠테이션1:2에서 :2 부분이 같은 파일을 연 창 여러 개 중 2번째라는 뜻이다('프레...
No comments:
Post a Comment