2012-01-26 3 views
3

나는 특정한 것을봤을 때 "래퍼를 만들고 확장하는 것"이라는 개념을 많이 사용했습니다. 제 경우에는 DOM을 확장하고 싶습니다. 나는 그것에 대해 권고하는 방법을 알고 있지만, 내가하려고하는 것은 약간 다르며, 적어도이 방법론을 탐구해야한다. 그래서 당신에게 내 질문에, 어떤 블로그/위키/내가 쳐다 보면서 바로 대답 nomatter을받지 못한 후 : 래퍼 객체/함수 란 무엇이며 어떻게 만들고 사용합니까?래퍼를 만드는 방법

죄송합니다. 나는이 프로토 타입 라이브러리를 읽었을 때부터이 아이디어를 얻었고 JQuery는 한 번에 이런 종류의 일을했다. 예를 들어 DOM을 사용할 수 있다면 그것은 인정 될 것입니다. MyDivmy_div 내부는 랩 오브젝트의 인터페이스를 필터링 (또는 증대) 할 수있는 DOM 소자 포장 <div id='my-div'></div>

MyDiv = { 
    _e:document.getElementById('my-div'), 
    setText:function(s) { 
    this._e.innerText = s; 
    }, 
    getText:function() { 
    return this._e.innerText; 
    }, 
    red:function() { 
    this._e.style.backgroundColor = 'red'; 
    } 
} 

가정

+1

래퍼는 일반적으로 기본 객체의 메소드를 많이 제공합니다. 따라서 래핑하는 것에 대한 참조를 포함하는 '클래스'래퍼를 만든 다음 객체 메서드를 호출하는 메서드를 만들고 믹스에 고유 한 래퍼를 추가합니다. 내가 정확하게 기억한다면, 어쨌든 적어도 일부 브라우저에서는 dom 요소의 프로토 타입을 확장 할 수 있습니다. 더 이상 사실이 아닌지 의심 스럽습니다. –

답변

12

바보 예.

MyDiv.setText('Hello'); 
MyDiv.red(); 
alert(MyDiv.getText()); 
+0

나를 위해 StackOverflow에 등록 하시겠습니까? 영광. 오, 고마워, 그럴듯한 대답은 어리석은 짓이다. – TERMtm

관련 문제