आपको कुछ भी नहीं ("कुछ भी" जिसका अर्थ है मूल डोम ऑब्जेक्ट्स) - जो केवल खराब चीजों का कारण बनता है। इसके अलावा प्रत्येक नए तत्व को फिर से विस्तारित करना (आपको आईई का समर्थन करने के लिए कुछ करना होगा) अतिरिक्त ओवरहेड जोड़ता है।
क्यों jQuery दृष्टिकोण नहीं लेने के लिए और एक आवरण/निर्माता बना सकते हैं और बजाय का विस्तार है कि:
var myDOM = (function(){
var myDOM = function(elems){
return new MyDOMConstruct(elems);
},
MyDOMConstruct = function(elems) {
this.collection = elems[1] ? Array.prototype.slice.call(elems) : [elems];
return this;
};
myDOM.fn = MyDOMConstruct.prototype = {
forEach : function(fn) {
var elems = this.collection;
for (var i = 0, l = elems.length; i < l; i++) {
fn(elems[i], i);
}
return this;
},
addStyles : function(styles) {
var elems = this.collection;
for (var i = 0, l = elems.length; i < l; i++) {
for (var prop in styles) {
elems[i].style[prop] = styles[prop];
}
}
return this;
}
};
return myDOM;
})();
तो फिर तुम myDOM.fn
के माध्यम से अपने खुद के तरीकों में जोड़ सकते हैं ... और आप इस तरह इसका इस्तेमाल कर सकते हैं:
myDOM(document.getElementsByTagName('*')).forEach(function(elem){
myDOM(elem).addStyles({
color: 'red',
backgroundColor : 'blue'
});
});
आप कर सकते हैं। लेकिन शायद नहीं होना चाहिए :) http://perfectionkills.com/whats-wrong-with-extending-the-dom/ – kangax
दरअसल, पिछले तीन वर्षों में चीजें बदल गई हैं: https://github.com/nbubna/mind -कैकिंग/ब्लॉब/gh-pages/extending-the-dom.md –