Переопределить некоторые функции в файле JavaScript (summernote.js) - PullRequest
0 голосов
/ 18 марта 2019

Я изменяю файл 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 Ответ

1 голос
/ 18 марта 2019

Насколько я могу судить, вы не можете перезаписать их, поскольку они инкапсулированы в область действия функции, которая пытается эмулировать закрытые методы в классе.

В любом случае, я бы посоветовал вам не переписывать какой-либо метод кода, а расширить класс.

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

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