我想用一个函数覆盖一个对象属性,这样每当调用对象的属性时,它就会调用该函数并返回结果。
当然,这应该可以在动态语言(如 JS)中实现吗?
语境:
我正在尝试将一些仅限 IE 的代码移植到其他浏览器。该代码广泛使用“Microsoft.XMLDOM”对象来解析和查询 XML 文档。我想在非 IE 浏览器中使用标准的 DOMParser。问题是 Microsoft 实现为 XML 元素公开了一个非标准的“文本”属性,并且该属性在代码库中被广泛使用,我想在 Element 原型上添加一个等效函数。
Element.prototype.text = function() {...}
不起作用,因为当代码库执行“myelem.text”时,它实际上并没有运行该函数,它只是返回一个指向它的指针。
我应该怎么做才能完成这项工作?