为了账号安全,请及时绑定邮箱和手机立即绑定

在bootstrap.js源码里每个插件都有一个Plugin构造函数,有什么作用呢

在bootstrap.js源码里每个插件都有一个Plugin构造函数,有什么作用呢

噜噜哒 2018-09-14 10:09:20
在bootstrap.js源码里每个插件都有一个Plugin构造函数,但是这个构造函数如果不通过js调用,是不会执行的,官方也建议通过在HTML标签里通过data-*来调用bootstrap.js的各种插件,那么在什么场景下会调用Plugin构造函数呢,望大牛指点迷津,下面贴上一个警告框alert的Plugin代码/**   * ==============================================================================================   * 当用$(".alert").alert()调用警告框时会会执行Plugin构造函数,里面通过缓存数据来优化性能   * 不明白这个缓存的数据在什么场景下会再次调用呢,如果没有再次调用场景,不是反而浪费性能了吗,我想了好久。。。   * 是不是为以后的扩展做准备呢   * ===============================================================================================   */    function Plugin(option) {    return this.each(function () {      var $this = $(this)      //如果有数据缓存则直接从缓存里进行读写操作 优化性能      var data  = $this.data('bs.alert')      //如果该jquery对象没有该数据,则把Alert实例数据存储在$this中      if (!data) $this.data('bs.alert', (data = new Alert(this)))      console.log($this.data("bs.alert"));      if (typeof option == 'string') data[option].call($this)    })  }
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

我觉得...这个data就是作为缓存啊,data的值是会随着this的改变而被重新new一个Alert的对象出来覆盖的,如果不用这个data变量缓存的话,难道每次都重新生成Alert对象覆盖吗?性能不会降低吗?


查看完整回答
反对 回复 2018-10-30
  • 1 回答
  • 0 关注
  • 515 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信