【发布时间】:2016-12-05 17:23:11
【问题描述】:
我查看了 Bootstrap 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确实会检查名称是否以下划线开头...
标签: javascript twitter-bootstrap class ecmascript-6 private