js 插件开发方式

完成的 js 插件格式

;(function(undefined) {
  'use strict'
  var _global
  var plugin = {
    add: function(n1, n2) {
      return n1 + n2
    },
    sub: function(n1, n2) {
      return n1 - n2
    },
    mul: function(n1, n2) {
      return n1 * n2
    },
    div: function(n1, n2) {
      return n1 / n2
    },
    sur: function(n1, n2) {
      return n1 % n2
    }
  }
  // 将插件对象暴露给全局对象  (0, eval)('this')相当于执行eval('this')
  _global = (function() {
    return this || (0, eval)('this')
  })()
  // 判断是否存在加载器,如果存在加载器,我们就使用加载器,如果不存在加载器。我们就使用顶级域对象。
  if (typeof module !== 'undefined' && module.exports) {
    module.exports = plugin
  } else if (typeof define === 'function' && define.amd) {
    define(function() {
      return plugin
    })
  } else {
    !('plugin' in _global) && (_global.plugin = plugin)
  }
})()
Top