增加DOM元素节点的原型?

Šim*_*das 11 javascript dom prototype

我知道如何为每个对象添加新方法 - 通过扩充Object的原型:

Object.prototype.foo = function() {  }; 
Run Code Online (Sandbox Code Playgroud)

但是,是否可以仅为DOM元素节点定义新方法?DOM元素节点对象有原型吗?或者一般来说DOM节点可能有原型吗?

或者仅为内置对象存在原型对象?

And*_*y E 26

是的,但不适用于所有浏览器.Internet Explorer 8支持DOM原型(在某种程度上),Firefox,Chrome,Opera和Safari也是如此.

HTMLElement.prototype.toggle = function () { 
    this.style.display = this.style.display == 'none' ? '' : 'none';
}
Run Code Online (Sandbox Code Playgroud)

许多人认为通过原型扩展DOM对象是不好的做法.Kangax有一篇关于这个主题的文章:http://perfectionkills.com/whats-wrong-with-extending-the-dom/ .但是,DOM原型允许我们在不支持它们的环境中实现基于标准的方法,就像ECMAScript第5版方法的填充程序一样.

  • 示例原型不会隐藏元素.这是切换 (4认同)