Javascript 扩展webapi类构造函数
我想知道是否有可能扩展一个内置的WebAPI类Javascript 扩展webapi类构造函数,javascript,html,class,oop,ecmascript-6,Javascript,Html,Class,Oop,Ecmascript 6,我想知道是否有可能扩展一个内置的WebAPI类请求,例如在实例化类构造函数时触发一个立即调用的函数 所以每当constmyrequest=newrequest('http://...', {...});已声明将触发触发器。例如一个console.log()或另一个全局函数。无需显式调用Request.prototype.trigger或任何类似的函数 欢迎提供任何帮助/建议学习材料。 谢谢 您可以将其扩展到自己的类中 class MyRequest extends Request{ con
请求
,例如在实例化类构造函数时触发一个立即调用的函数
所以每当constmyrequest=newrequest('http://...', {...});代码>已声明将触发触发器。例如一个console.log()
或另一个全局函数。无需显式调用Request.prototype.trigger
或任何类似的函数
欢迎提供任何帮助/建议学习材料。
谢谢 您可以将其扩展到自己的类中
class MyRequest extends Request{
constructor(...args){
super(...args);
console.log("extended")
}
}
或覆盖内置请求(坏主意)
您可以将其扩展到您自己的类中
class MyRequest extends Request{
constructor(...args){
super(...args);
console.log("extended")
}
}
或覆盖内置请求(坏主意)
您可以通过一个私有函数来实现这一点,并覆盖您的请求类——这并不是真正的建议,因为如果您自己实现,您应该自己命名它,这样您就知道它不是默认对象
void函数(){
const request=window.request;
类请求扩展请求{
构造函数(){
超级(…参数);
log('Calling mock request');
}
}
window.Request=请求;
}();
log(新请求('http:google.com')代码>您可以使用私有函数并覆盖您的请求类来完成此操作-这并不是真正的建议,因为如果您自己实现,您应该自己命名它,以便知道它不是默认对象
void函数(){
const request=window.request;
类请求扩展请求{
构造函数(){
超级(…参数);
log('Calling mock request');
}
}
window.Request=请求;
}();
log(新请求('http:google.com')代码>这看起来像是一种设计味道,不管怎样,你想重写所谓的内置类的构造函数吗?好吧,重写,但保留现有的功能,只需添加一个立即运行的附加函数。因此,在我看来,可以扩展构造函数,但在技术上,可能是这样。直到“设计气味”:)它看起来像一种设计气味,不管怎样,你想覆盖一个所谓的内置类的构造函数吗?好吧,覆盖但保留现有功能,只需添加一个立即运行的附加函数。因此,在我看来,可以扩展构造函数,但在技术上,可能是这样。直到“设计气味”:)不错!这件事我想得太多了。非常感谢+1:不错!这件事我想得太多了。非常感谢+1:谢谢你的发帖,又是一个完美的答案,只是太慢了几秒钟,不可能被接受。谢谢你抽出时间。投赞成票!:)谢谢你的发帖,这是另一个完美的答案,只是太慢了几秒钟,无法成为公认的答案。谢谢你抽出时间。投赞成票!:)