Š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版方法的填充程序一样.
归档时间: |
|
查看次数: |
15938 次 |
最近记录: |