亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在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條經驗 獲得超4個贊

我覺得...這個data就是作為緩存啊,data的值是會隨著this的改變而被重新new一個Alert的對象出來覆蓋的,如果不用這個data變量緩存的話,難道每次都重新生成Alert對象覆蓋嗎?性能不會降低嗎?


查看完整回答
反對 回復 2018-10-30
  • 1 回答
  • 0 關注
  • 548 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號