如何覆盖Javascript中的方法并将其应用于原始对象,而不是孩子?
作者:互联网
我试图覆盖Audio对象的play()方法,但我不想只为子对象这样做.我想将它应用于标准的Audio对象.
问题是我也想使用原始的play()方法.我已经尝试克隆Audio对象,进行更改,同时调用原始Audio对象的play()方法并重新分配回原始的Audio对象.它不起作用.
想法有人吗?例如,如何在仍然调用原始播放方法的同时在play()方法中添加alert()?
PLZ.我需要这样做,因为我调用了一个调用新音频的工具生成的代码.因此,对于我正在做的数百代代码而言,不断地必须对此进行替换将是一种超级痛苦.
解决方法:
基本上这可以这样做:
var playOriginal = Audio.prototype.play;
Audio.prototype.play = function(){
playOriginal.apply(this, arguments);
}
但我不确定这适用于所有浏览器.在大多数情况下,不建议扩展本机JS对象.
标签:javascript,html5,html5-audio,prototypal-inheritance 来源: https://codeday.me/bug/20190723/1512682.html