什么是DOM扩展/包装?
我有两个主要问题什么是DOM扩展/包装?,dom,mootools,javascript,prototypejs,Dom,Mootools,Javascript,Prototypejs,我有两个主要问题 像ObjectObject这样的扩展有用吗 什么是DOM包装 在阅读了那篇文章之后,我找不到任何关于DOM包装的内容,也找不到任何规范以及什么是DOM扩展和什么不是DOM扩展。不,对象被指定为Javascript语言的一部分,而DOM是一种仅与浏览器环境相关的API,用于“访问和更新文档的内容、结构和样式” 然而,那篇文章中提出的反对DOM对象扩展的理由之一仍然适用于扩展本机类型,例如Object——即冲突的可能性 包装对象是指创建引用原始对象的新对象,但通过新的包装对象提
Object
Object这样的扩展有用吗在阅读了那篇文章之后,我找不到任何关于DOM包装的内容,也找不到任何规范以及什么是DOM扩展和什么不是DOM扩展。不,
对象
被指定为Javascript语言的一部分,而DOM是一种仅与浏览器环境相关的API,用于“访问和更新文档的内容、结构和样式”
然而,那篇文章中提出的反对DOM对象扩展的理由之一仍然适用于扩展本机类型,例如Object
——即冲突的可能性
包装对象是指创建引用原始对象的新对象,但通过新的包装对象提供附加功能 例如,与使用跨浏览器
addClass
函数扩展DOM元素对象不同,如下所示:
var element = document.getElementById('someId');
element.addClass = function (className) {
...
};
var element = document.getElementById('someId');
var wrapped = new ElementWrapper(element);
wrapped.addClass('someClass');
您可以改为定义包装函数:
var ElementWrapper = function (element) {
this.element = element;
};
并将该功能添加到其原型中:
ElementWrapper.prototype.addClass = function (className) {
...
};
和“包裹”元素,如下所示:
var element = document.getElementById('someId');
element.addClass = function (className) {
...
};
var element = document.getElementById('someId');
var wrapped = new ElementWrapper(element);
wrapped.addClass('someClass');