我想用一个函数覆盖一个对象属性,以便每当调用该对象的属性时,它都会调用该函数并返回结果。用函数覆盖一个Javascript属性
当然,这应该是可能的动态语言,如JS?
语境:
我试图端口一些IE-只有代码,其他浏览器。该代码广泛使用“Microsoft.XMLDOM”对象来解析和查询XML文档。我想在非IE浏览器中使用标准的DOMParser。问题是Microsoft实现公开了XML元素的非标准“文本”属性,并且该属性在代码库中被广泛使用,所以我想在Element原型上添加一个等效函数。
Element.prototype.text = function() {...}
不起作用,因为当代码库是“myelem.text”,它并不真正运行的功能,它只是返回一个指针。
我该怎么做才能做到这一点?
您的目标浏览器是否支持JS getters和setters? – 2012-07-29 00:22:52
不知道这些,谢谢@AnthonySottile我会研究它。 – Leor 2012-07-29 00:44:36
对于可伸缩性(稍后使用代码),您应该添加您自己的方法(或函数),它基于'text'属性的存在或不存在来执行函数或仅返回属性。这样处理文档总是会调用相同的东西。 – Sherbrow 2012-07-29 01:52:09