【发布时间】:2018-03-05 15:02:34
【问题描述】:
首先,我在javascript中遇到了OOP的问题,对此我了解的很少,但是我需要解决这个问题...
好吧,我正在尝试在 Bootstrap 4 上使用为 Bootstrap 3 制作的库:https://github.com/nakupanda/bootstrap3-dialog
我收到以下错误:“无法将类调用为函数”
查看代码,我发现了一些东西:
1 - classCallCheck: 是引发错误的函数。我想它会强制用户使用“new”并实例化一个对象,并且永远不会像函数一样调用;
2 - createClass:是一个构造类的函数,所以Bootstrap 4中的类没有按惯例定义。
3 - 继承:是另一个函数,表明继承也不是常规的。
4 - 该库有此代码来扩展 Bootstrap 模式:
var BootstrapDialogModal = function (element, options) {
Modal.call(this, element, options);
};
但是,Modal.call 触发了错误:“Cannot call a class as a function”。
我想唯一的问题是 BootstrapDialogModal 继承了 Bootstrap 3 强加的继承条件中的 Modal,当 Bootstrap 4 处于活动状态时,这些条件不一样。
关注 jsfiddle:http://jsfiddle.net/g6nrnvwu/
有人知道我该如何调整这段代码吗?
谢谢。
【问题讨论】:
-
Bootstrap 4 是 Bootstrap 3 的巨大更新/重制版。发生这种情况是因为(可能)bootstrap 4 中有一个名为“Modal”的新类名存在冲突。您可以尝试用另一个名称更改该库中名为“Modal”的所有函数。也许它会起作用,除了还有更多的冲突。最好使用另一个替代库或自己制作(因为我这样做了,而且我确信更少的 3rd 方库来更快的页面加载)._.
-
请提供jsfiddle。
-
您收到以下错误“无法将类作为函数调用”,因为您确实不能将类用作函数。在 Bootstrap 4 中,Modal 是一个类,如果插件使用基 Modal 类,它应该扩展它。我建议您忘记使用这种组合,因为您不能只用几行来修复它(还考虑到 Modal 在通往 Bootstrap 4 的路径上被重新设计)。只有完全重写插件才能直接解决您的问题))
-
@NavjotAhuja 跟随 JsFiddle 的链接:jsfiddle.net/g6nrnvwu
标签: javascript oop twitter-bootstrap-3 bootstrap-modal bootstrap-4