覆盖javascript文件(summernote.js)中的某些功能

时间:2019-03-18 05:50:09

标签: javascript summernote

我正在更改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中刚刚提到的那些功能)。

我该怎么做?

谢谢, 德扬

1 个答案:

答案 0 :(得分:1)

据我所知,您不能覆盖它们,因为它们被封装在试图模拟类上私有方法的函数作用域中。

无论如何,我建议您不要覆盖任何代码方法,而要扩展类。

class MyCustomImageDialog extends ImageDialog {
  constructor() {
    super();
  }

  initialize() { … }
  show() { … }
  showImageDialog() { … }
}