编程语言
首页 > 编程语言> > 如何覆盖Javascript中的方法并将其应用于原始对象,而不是孩子?

如何覆盖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