2011-03-15 3 views
4

2 가지 주요 질문이 있습니다.DOM 확장/배치 란 정확히 무엇입니까?

  1. Object과 같은 확장 항목이 있습니까?

  2. DOM 포장이란 무엇입니까?

    http://perfectionkills.com/whats-wrong-with-extending-the-dom/

그 기사를 읽은 후 나는 DOM 포장에 대해 아무것도없이 사양과 정확히 무엇이며, DOM 확장하지를 찾을 수 없습니다. DOM을가 (W3C) 브라우저 환경에서만 관련 API이며 사용 "액세스 및 문서의 내용, 구조와 스타일을 업데이트"동안

답변

8

아니, Object는 자바 스크립트 언어의 일부로 지정 .

그러나 DOM 객체의 확장에 반대하는이 기사에서 제공하는 이유 중 하나는 Object과 같은 기본 유형 확장, 즉 충돌 가능성에 적용됩니다. 객체 포장


원래 참조하는 새로운 객체를 생성하지만, 새로운 래퍼 객체를 통해 부가 기능을 제공하기를 의미한다.

var element = document.getElementById('someId'); 
element.addClass = function (className) { 
    ... 
}; 

당신은 대신 래퍼 함수를 ​​정의 할 수 있습니다 :

var ElementWrapper = function (element) { 
    this.element = element; 
}; 

을 그리고 함수를 추가 예를 들어, 오히려 크로스 브라우저와 같은 addClass 기능을는 DOM 요소 개체를 확장보다는

그것의 원형에 :

ElementWrapper.prototype.addClass = function (className) { 
    ... 
}; 

그리고 "포장하십시오"elemen 예 :

var element = document.getElementById('someId'); 
var wrapped = new ElementWrapper(element); 
wrapped.addClass('someClass'); 
+0

OH. 승인. 감사. :) – Kayla

관련 문제