Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

HTML元素的原型扩展

  JavaScript对象可以做到在其原型上添加属性后在所有同类对象上使用,同样是JavaScript对象的HTML元素当然也能做到。现代浏览器中可以找到元素的构造器,并操作其原型。但同修改JavaScript内置对象原型一样,我不建议修改内置元素的原型属性。
<div id="div"></div>
<script>
HTMLDivElement.prototype.xxx="xxx";
console.log(div.xxx); //xxx
</script>
  但请注意IE7-中不支持元素构造器的获取,上面的代码会执行错误

  上面是DIV元素的例子,如果针对所有元素可以修改更底层的原型链,比如
<div id="div"></div>
<p id="p"></p>
<script>
HTMLElement.prototype.xxx="xxx";
console.log(div.xxx); //xxx
console.log(p.xxx); //xxx
</script>
  像DIV、P这样的内置元素我是不建议修改其原型的,因为这很可能造成库的冲突。针对所有元素的原型修改我就更反对了。但对于自定义元素,修改其原型我表示支持。
<div id="div"></div>
<x-test id="xTest"></x-test>
<script>
document.registerElement("x-test",{
  prototype:{
    xxx:"xxx"
  }
});
console.log(xTest.xxx); //xxx
console.log(div.xxx); //undefined
</script>
网名:
54.226.58.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^