Twitter bootstrap 推特引导崩溃。。奇怪的数组初始化?

Twitter bootstrap 推特引导崩溃。。奇怪的数组初始化?,twitter-bootstrap,Twitter Bootstrap,请解释一下它的作用。(引导折叠) 因此,data是Collapse插件的一个实例 config是\u jQueryInterface函数的参数 这意味着如果您传递到该函数togglestring-data[config]将是data['toggle']。而切换是一种折叠插件的方法。然后,如果添加(),则可以运行该方法 切换方法: if (!data) { data = new Collapse(this, _config); $this.data(DATA_KEY, data); }

请解释一下它的作用。(引导折叠)

因此,
data
是Collapse插件的一个实例

config
\u jQueryInterface
函数的参数

这意味着如果您传递到该函数
toggle
string-
data[config]
将是
data['toggle']
。而
切换
是一种折叠插件的方法。然后,如果添加
()
,则可以运行该方法

切换方法:

if (!data) {
  data = new Collapse(this, _config);
  $this.data(DATA_KEY, data);
}

总之,
data[config]()
根据
config
参数运行Collapse plugin方法(可能是
show
hide
、或
Collapse
)。

如果您有其他类似问题,您可以始终
控制台。将这些事情记录在引导程序的代码中,例如,您可以编写
console.log(data)
console.log(data[config])
,当您单击可折叠元素时,您将看到控制台中有哪些内容:)。还有一件事,
data[config]
中的括号并不意味着数据是数组,在本例中,数据是一个对象,您可以使用点或括号访问对象键,因此它可以是
data.toggle()
data['toggle']()
。但您不能编写
数据。'toggle'()
,这就是他们使用括号表示法的原因。
Collapse._jQueryInterface = function _jQueryInterface(config) {
  return this.each(function () {
    var $this = $(this);
    var data = $this.data(DATA_KEY);
    var _config = $.extend({}, Default, $this.data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);

    if (!data && _config.toggle && /show|hide/.test(config)) {
      _config.toggle = false;
   }

    if (!data) {
      data = new Collapse(this, _config);
      $this.data(DATA_KEY, data);
    }

    if (typeof config === 'string') {
      if (data[config] === undefined) {
        throw new Error('No method named "' + config + '"');
      }
      data[config]();
    }
  });
};
if (!data) {
  data = new Collapse(this, _config);
  $this.data(DATA_KEY, data);
}
Collapse.prototype.toggle = function toggle() {
  if ($(this._element).hasClass(ClassName.SHOW)) {
    this.hide();
  } else {
    this.show();
  }
};