Thursday, January 2, 2014

jQuery 스타일로 getter, setter 만들기

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의 키워드이다.

No comments:

Post a Comment

창 핸들을 만드는 동안 오류가 발생했습니다

System.ComponentModel.Win32Exception was unhandled   MyForm w = new MyForm IntPtr handle = wnd.Handle;   // Exception occurs here class MyFo...