插件--之封装

关于封装的插件 (jquery)

1、静态方式 $.method=fn

    ### 比方说 一个 加  的插件

 $(function($){
    $.add=function(a,b){
       return a+b;      
    }  
 }(jQuery))
 $.add(5,6) //调用方法

2、实例方式 $.fn.method=fn

     ### tab 栏切换 功能
      (function ($) {
 // {tabMenu: '#aa'}
 $.tab = function (options) {
// 默认参数
  var defaults = {
  tabMenu: '#tab',
  activeClass: 'active',
  tabMain: '#tab-main',
  tabMainSub: '.main',
  selectedClass: 'selected'
}
// 把options中的属性,把对应属性的值赋给defaults对应的属性
// defaults.tabMenu = options.tabMenu || defaults.tabMenu;
// for(var key in options) {
//   defaults[key] = options[key];
// }
$.extend(defaults, options);

$(defaults.tabMenu).on('click', 'li', function () {
  $(this)
    .addClass(defaults.activeClass)
    .siblings()
    .removeClass(defaults.activeClass);

  //
  var index = $(this).index();
  //
  $(defaults.tabMain + ' ' + defaults.tabMainSub)
    .eq(index)
    .addClass(defaults.selectedClass)
    .siblings()
    .removeClass(defaults.selectedClass);
   })
 }
  }(window.jQuery))

表格插件 [22-表格插件.html]

  (function($) {
 // 内部的变量,外部无法访问,防止变量名冲突
 var a = 0;
// 给$增加了一个实例方法
 $.fn.table = function (header, data) {
  var array = [];
   array.push('<table>');
array.push('<tr>');

// 生成表头
$.each(header, function () {
  array.push('<th>' + this + '</th>');
})
array.push('</tr>');


// 生成数据行
$.each(data, function (index) {
  // this是当前遍历到的数组中的每一个对象
  // 拼数据行
  array.push('<tr>');
  array.push('<td>' + (index + 1) + '</td>');

  // 遍历对象,拼表格
  for (var key in this) {
    array.push('<td>' + this[key] + '</td>');
  }

  array.push('</tr>');
})
array.push('</table>');

this.append(array.join(''));
  }

   }(window.jQuery))

3、二者的区别

    静态方法只能访问静态成员,实例方法可以访问静态和实例成员,之所以不允许静态方法
    访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并
    不一定存在对象。同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用  
    实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。基于同样
    的道理,静态方法中也不能使用关键字this。
   main()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系           统在创建对象之前就调用。
  (   这段话的作者      https://zhidao.baidu.com/question/305017611182741684.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值