gpt4 book ai didi

javascript - 为什么在 tabs.js 中进行双重初始化?

转载 作者:行者123 更新时间:2023-12-03 10:13:25 28 4
gpt4 key购买 nike

嘿伙计们,我刚刚浏览了 tabs.js 的代码(它是一个 Bootstrap 插件),现在这个插件中有一行非常复杂的代码,见下文:

if (!data) $this.data('bs.tab', (data = new Tab(this)))

您可以在 line 121 上找到它。现在,如果上面的代码行替换为下面的代码行:

data = new Tab(this) // using this works just fine , the console also does't throw any errors .

该插件的功能仍然相同,我创建了一个示例 here :

那么接下来使用的是什么?

$this.data('bs.tab', (data = new Tab(this)))  

使用 new Tab(this) 初始化 'bs.tab' 的基本目的是什么?

我问这个问题的一个主要原因是所有(几乎) Bootstrap 插件都使用这种双重初始化。

最佳答案

您错过了上面的行!

  var data  = $this.data('bs.tab')
if (!data) $this.data('bs.tab', (data = new Tab(this)))

伪代码

  1. 获取与 $this 关联的选项卡。
  2. 如果没有关联的选项卡使用 $this 创建一个并关联它。

关于javascript - 为什么在 tabs.js 中进行双重初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30006818/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com