bootstrap.js插件使用什么设计模式?

时间:2015-04-12 01:32:21

标签: javascript jquery twitter-bootstrap

我是JS和jQuery的新手,并且一直在积极地探索bootrap js存储库。关于bootstrap中的插件,我注意到了一些事情。

插件遵循以下结构/骨架:

+function ($) {
  'use strict';

  // DROPDOWN CLASS DEFINITION
  // =========================

  var Dropdown = function (element) {

  }

  Dropdown.VERSION = '3.3.4'

  Dropdown.prototype.toggle = function (e) {


  }

  Dropdown.prototype.keydown = function (e) {

  }




  // DROPDOWN PLUGIN DEFINITION
  // ==========================

  function Plugin(option) {
    return this.each(function () {
      var $this = $(this)
      var data  = $this.data('bs.dropdown')

      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  var old = $.fn.dropdown

  $.fn.dropdown             = Plugin
  $.fn.dropdown.Constructor = Dropdown


  // DROPDOWN NO CONFLICT
  // ====================

  $.fn.dropdown.noConflict = function () {
    $.fn.dropdown = old
    return this
  }


  // APPLY TO STANDARD DROPDOWN ELEMENTS
  // ===================================



}(jQuery);

(取自dropdown.js

的例子

当插件用户将值传递给插件时,例如,

$('#mynav').dropdown('hidden'); // just an example

该值在插件内部以下列方式使用:

data[option].call($this) // just an example 

我还注意到一些关于bootstrap插件通常运行方式的事情,但我的问题是,bootstrap插件使用的是什么设计模式(如果有的话)?我真的很想知道设计模式是什么。

0 个答案:

没有答案