[英]JavaScript prototype functions overriding
I am using open source Able Player from Github The UI is very basic and I was wondering the best way to extend the player and override functions like 我正在使用Github的开放源代码Able Player 用户界面非常基本,我想知道扩展播放器并覆盖诸如
AblePlayer.prototype.getSvgData = function(button) {...
AblePlayer.prototype.setButtonImages = function() {...
So that I can use my own icons etc. 这样我就可以使用自己的图标等。
without motifying the original ableplayer.js
没有装饰原始的
ableplayer.js
It is best to extend AblePlayer
with prototypical inheritance best practices according to MDN 最好根据MDN扩展具有原型继承最佳实践的
AblePlayer
(function(){
const AblePlayer = window.AblePlayer;
function MyAblePlayer(...args) {
AblePlayer.call(this, ...args);
}
MyAblePlayer.prototype = Object.create(AblePlayer.prototype);
MyAblePlayer.prototype.constructor = MyAblePlayer;
/* @override method*/
MyAblePlayer.prototype.getSvgData = function (...args) {
// if you need to call super do:
const superResult = AblePlayer.prototype.getSvgData.call(this, ...args);
// add your code here
return superResult; // or return some other result
}
// Copy static properties
Object.assign(MyAblePlayer, AblePlayer)
// Finally override global reference
window.AblePlayer = MyAblePlayer;
})();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.