我正在改变summernote-lite.js以扩展它的功能,现在我面临一个问题:新版本的午餐和现在的东西?如果我想在我的网站上使用它,我必须再次更改它。我认为对我来说最好的是覆盖已存在于该文件中的函数并将其存储在单独的js文件中,但是如何做到这一点?
例如,这里是summernote-lite.js文件的开头:
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(factory(global.jQuery));
}(this, (function ($$1) {
那么这里是我要覆盖的几个函数:
var imageDialog = function (opt) {
....
}
下一个:
var ImageDialog = /* @class */ (function () {
...
ImageDialog.prototype.initialize = function () {
...
}
ImageDialog.prototype.show = function () {
...
}
ImageDialog.prototype.showImageDialog = function () {
...
}
...
}());
我想改变那些提到的函数(在ImageDialog中刚才提到的函数)。
我怎么能这样做?
谢谢,德扬
据我所知,你不能覆盖它们,因为它们被封装在一个函数作用域中,它试图模拟一个类上的私有方法。
在任何情况下,我建议你不要覆盖任何代码方法,而是扩展类。
class MyCustomImageDialog extends ImageDialog {
constructor() {
super();
}
initialize() { … }
show() { … }
showImageDialog() { … }
}