javascript-Prototype.js和document.createElement()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-Prototype.js和document.createElement(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1485字,纯文字阅读大概需要3分钟。
内容图文
![javascript-Prototype.js和document.createElement()](/upload/InfoBanner/zyjiaocheng/658/44628a987db640189765d0220edfc3f4.jpg)
所有
我现在正在学习prototype.js.看起来有些奇怪.例如,下面是我在firebug中运行的代码片段,URL为http://api.prototypejs.org/dom/Element/,因为页面中包含prototype.js.
var el2 = document.createElement('div');
var k=0;
for(var i in el2){ k++};
console.log(k);
结果是262,非常非常奇怪.因为如果我在没有prototype.js的页面中运行相同的代码,则结果为195.我的问题是prototype.js如何影响document.createElement方法.我在prototype.js中查询document.createElement,找不到任何代码,例如document.createElement = function(){}.
谢谢!
解决方法:
根据您发布的代码,您正在遍历元素对象并计算该元素对象上的属性数量.
正如其他张贴者所指出的那样,PrototypeJS向HTMLElement的本机Javascript定义添加了其他方法和属性.
请看一下元素名称空间http://api.prototypejs.org/dom/Element/,其中列出了PrototypeJS添加的所有方法和属性.
编辑更多信息
PrototypeJS如何向元素添加新方法?
首先,您需要了解javascript原型的工作原理-最简单的定义是它是构建对象的蓝图,并且当创建该类型的新对象时,该对象具有该蓝图中定义的所有方法以及所有后续方法.原型链.
原型链的最简单示例
DIVElement -> HTMLElement -> Object
因此,新的div元素将获取DIVElement原型,HTMLElement原型和Object原型的所有方法.
这也是为什么不建议扩展Object原型的原因,因为所有内容都是从该原型复制的.
因此,PrototypeJS使用新方法扩展了HTMLElement.prototype对象,而该方法在大多数浏览器中都不存在,因此,每当在javascript中创建新HTML元素时,它都会获取PrototypeJS方法的副本.
对于源代码中的特定位置
Object.extend(GLOBAL.Element, {
extend: extend,
addMethods: addMethods
});
这是许多功能检测的结尾,以查看浏览器支持哪些元素等.
内容总结
以上是互联网集市为您收集整理的javascript-Prototype.js和document.createElement()全部内容,希望文章能够帮你解决javascript-Prototype.js和document.createElement()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。