我想用一個函數覆蓋一個對象屬性,以便每當調用該對象的屬性時,它都會調用該函數並返回結果。用函數覆蓋一個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