例如,this.parentNode我想只写this.p或而不是
document.getElementById('someid')只写document.g('someid')。当然,这些都是简单的例子,我只想知道正确的做法是什么。
(我知道我可以使用 jQuery 或 Prototype,但我想了解它是如何在 JS 中真正完成的)
例如,this.parentNode我想只写this.p或而不是
document.getElementById('someid')只写document.g('someid')。当然,这些都是简单的例子,我只想知道正确的做法是什么。
(我知道我可以使用 jQuery 或 Prototype,但我想了解它是如何在 JS 中真正完成的)
尽管您可以HTMLElement在许多浏览器上进行原型设计- Internet Explorer (6,7,8)不是其中之一。AFAIK,IE9 确实支持这一点(虽然我还没有测试过)。
对于处理它的浏览器,您可以执行以下操作:
HTMLElement.prototype.doHello = function(thing){
console.log(this + ' says: ' + thing)
}
document.body.doHello('hello')
我强烈建议不要尝试这样做,原因如下:
HTMLElement原型并允许您对其进行扩充,也不能保证它会按您的预期工作。HTMLElement原型混淆,则可能会出现命名冲突和难以检测的错误。相反,我建议像 jQuery、YUI 和其他库一样围绕 DOM 节点创建包装器对象。
总之一句话,不要。最好不要修改您不拥有的对象。
对于 尤其如此HTMLElement,您无法在某些浏览器中修改它。
这从perfectionkills.com文章可能会给你一些洞察到它是如何做的,为什么你不应该这样做。
(顺便说一下,jQuery 不扩展 DOM 元素。它们使用 DOM 包装器代替。)