私はBootstrap 4のソースコードを調べていましたが、彼らはes6クラスを使用していて、ある種の明らかなモジュールパターンと結合していることを発見しました。ブートストラップ4がes6クラスでプライベートメソッドを使用するのはなぜですか?
hereから取得したコードの簡略化した例を次に示します。
const Modal = (($) => {
const NAME = 'modal'
const VERSION = '4.0.0-alpha.3'
...
const Default = {
...
}
class Modal {
constructor(element, config) {
this._config = this._getConfig(config)
this._element = element
...
}
// public
toggle(relatedTarget) {
...
}
show(relatedTarget) {
...
}
hide(event) {
...
}
dispose() {
...
}
// private
_getConfig(config) {
...
}
_showElement(relatedTarget) {
...
}
_enforceFocus() {
...
}
_setEscapeEvent() {
...
}
_setResizeEvent() {
...
}
}
return Modal
})(jQuery)
export default Modal
この結果、すべてのメソッドまたはプロパティがプライベートプロパティを含めて公開されます。ただし、これは最終製品では発生しません。たとえば、$('#myModal').modal('_getConfig')
のようなものは動作しません。何が起こっている?
恐らく 'modal'は名前がアンダースコアで始まるかどうかをチェックします... – Bergi