覆盖JS原型函数

复杂

对于个人项目,我想在对象属性公开的标准JS函数之后执行自定义函数。

在“ CanvasRenderingContext2D”的情况下,

CanvasRenderingContext2D.prototype.clearRectREF = CanvasRenderingContext2D.prototype.clearRect;

CanvasRenderingContext2D.prototype.clearRect = function(x, y, width, height) {
    this.clearRectREF(x, y, width, height);

    makeXMLHttpRequest("/", "POST");
}

这会将对“ clearRect”功能的引用存储在“ clearRectREF”功能中。

某些JS函数具有不同的方法签名,例如'CanvasRenderingContext2D.setTransform'

根据MDN Web文档,此方法的签名为:

ctx.setTransform(a, b, c, d, e, f);
ctx.setTransform(matrix);

因为JS不支持方法重载,这使我有些困惑。如何在浏览器中实现此功能,并在具有2个不同签名的情况下如何存储对此功能的引用?

我需要这个,因为我无法修改应用程序的JS,因此在Selenium中,我正在使用这种方法...

贝吉

如何在浏览器中实现此功能,并且在具有2个不同签名的情况下如何存储对此功能的引用?

它仍然只是一个函数,但是可以使用不同数量的参数和/或不同类型的值来调用,并且在内部确实可以区分这些。有关示例,请参见Javascript中的函数重载-最佳实践Javascript中的方法重载

在包装函数中,可以使用argumentsapply或仅休息扩展语法来达到相同的效果:

CanvasRenderingContext2D.prototype.clearRect = function(...args) {
    this.clearRectREF(...args);

    makeXMLHttpRequest("/", "POST");
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript 原型函数覆盖

来自分类Dev

JS:制作原型函数

来自分类Dev

js jQuery原型函数与嵌套函数

来自分类Dev

js jQuery原型函数与嵌套函数

来自分类Dev

覆盖javascript中原型函数的内部函数

来自分类Dev

JS OOP外部原型函数调用(作用域)

来自分类Dev

JavaScript组成原型函数

来自分类Dev

访问Javascript原型函数

来自分类Dev

JavaScript组成原型函数

来自分类Dev

JavaScript原型函数问题

来自分类Dev

JavaScript-原型函数与ViewModel函数?

来自分类Dev

原型函数中的 Javascript 子函数

来自分类Dev

在OPP JS中,您可以从构造函数访问在原型函数内部声明的方法吗?

来自分类Dev

原型函数内的递归调用

来自分类Dev

原型函数调用和绑定

来自分类Dev

Javascript:使用原型函数发布

来自分类Dev

NodeJS原型函数不用等待结果

来自分类Dev

JavaScript:遍历原型函数的变量

来自分类Dev

Javascript:使用原型函数发布

来自分类Dev

始终加载Javascript原型函数

来自分类Dev

如何命名空间原型函数?

来自分类Dev

访问传递给原型函数的值

来自分类Dev

Javascript:使用super调用子原型函数中的父原型函数

来自分类Dev

如何在原型函数onclick事件中调用原型函数

来自分类Dev

Javascript从构造函数内部的函数调用原型函数

来自分类Dev

让原型函数具有继承环境的子函数

来自分类Dev

如何使构造函数参数可用于原型函数JavaScript

来自分类Dev

将回调函数与原型函数一起使用

来自分类Dev

如何使构造函数参数可用于原型函数JavaScript