我正在更改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中刚刚提到的那些功能)。
我该怎么做?
谢谢, 德扬
答案 0 :(得分:1)
据我所知,您不能覆盖它们,因为它们被封装在试图模拟类上私有方法的函数作用域中。
无论如何,我建议您不要覆盖任何代码方法,而要扩展类。
class MyCustomImageDialog extends ImageDialog {
constructor() {
super();
}
initialize() { … }
show() { … }
showImageDialog() { … }
}