在 Bootstrap 插件定义中,我看到了以下内容:
// Dropdown plugin
$.fn.dropdown.Constructor = Dropdown
// Modal plugin
$.fn.modal.Constructor = Modal
// Similarly, on other plugins as well e.g. Tooltip, etc.
考虑到Dropdown
和Modal
实际上是构造函数,他们为什么需要该分配?
var Modal = function (element, options) {
...
}
使用.Constructor
属性名称是一种约定吗?我可能是错的,但.Constructor
是一个任意属性,对吧?
它允许在 JS 中检查变量的类型。例如,通过定义构造函数属性,可以轻松评估类型,如下所示:
var myModal = new modal();
if(myModal.constructor == Modal)
{
// do something
}
由于 Bootstrap 的 JavaScript 对其某些 JavaScript 元素使用相同的构造函数(例如,Popovers 需要 Tooltip),因此它可能在 Bootstrap 代码中用于确定变量引用的元素类型。