2
我想包装一个为所有SVGElements实现的函数,称为getScreenCTM
。如何覆盖全局的HTMLElement本机方法?
我的目标是,所有svg元素的这个方法的所有调用都会调用我的包装函数,它将打印一些东西然后委托给原始的本地实现。
这里是我的尝试:
<svg id="a"></svg>
和
window.nativeGetScreenCTM = SVGElement.prototype.getScreenCTM;
SVGElement.prototype.getScreenCTM = function() {
var matrix = window.nativeGetScreenCTM();
console.log('printing something:');
return matrix;
};
var svgElem = document.getElementById('a');
svgElem.getScreenCTM();
,但在执行最后一行时,打印什么。原始的getScreenCTM
被调用,而不是我的包装实现。
你可以用它在这里玩:https://jsfiddle.net/zwxr2c9k/1/
我怎样才能做到这一点?