(function($) {
$.fn.PluginName = function(options) {
// 创建一个默认设置对象
var defaults = {
key : "DefaultValue"
}
//使用extend方法从options和defaults对象中构造出一个新的设置对象
var options = $.extend(defaults, options);
/****************
执行代码
****************/
};
})(jQuery);
 //调用自定义的JQuery插件
$(".className").PluginName({key:"NewValue"});

var options = $.extend(defaults, options);
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
Object.extend = function(destination, source) { // 一个静态方法表示继承, 目标对象将拥有源对象的所有属性和方法
  for (var property in source) {
  destination[property] = source[property];// 利用动态语言的特性, 通过赋值动态添加属性与方法
  }
  return destination;// 返回扩展后的对象
}

 (function($) {
var methods = {
init : function(options) {
// 创建一个默认设置对象
var defaults = {
key : "DefaultValue"
}
//使用extend方法从options和defaults对象中构造出一个新的设置对象
var options = $.extend(defaults, options);
/***************
执行代码
***************/ }
};
$.fn.PluginName = function(options) {
//获取传入的第一个实参副本(arguments对象是收到的实参副本,就像数组,但却又不是数组)
var method = arguments[0];
//获取我们的方法
if (methods[method]) {
//如果方法存在,存储起来以便使用
method = methods[method];
//如果方法不存在,检验对象是否为一个对象(JSON对象)或者method方法没有被传入
arguments = Array.prototype.slice.call(arguments, 1);
} else if ( typeof (method) == 'object' || !method) {
//如果我们传入的是一个对象参数,或者根本没有参数,init方法会被调用
method = methods.init;
} else {
//如果方法不存在或者参数没传入,则报出错误。需要调用的方法没有被正确调用
$.error('Method ' + method + ' does not exist on jQuery.ChangeTabs');
return this;
}
//调用我们选中的方法
return method.apply(this, arguments);
};
})(jQuery);
$('.className').pluginName('init', 'argument'); // 调用:把 "argument 1" 和 "argument 2" 传入 "init"

最新文章

  1. 基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#)
  2. [每日一记] Python报错 综述
  3. Swift-04-Designated&&Convenience
  4. SQL Server 2005 镜像构建手册
  5. ajaxfileUpload ajax 上传图片使用
  6. MFC发送自定义消息-PostMessage和SendMessage
  7. [转载]网络编辑必知常识:什么是PV、UV和PR值 zz
  8. CSU 1111 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园。A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕。C 太太因为正身怀六甲无法加入她们的行动,所以就打算出90元钱
  9. mono for android 学习记录
  10. tastypie Django REST framework API [Hello JSON]
  11. 阿里笔试js题
  12. 微信小程序 sha1 实现密码加密
  13. iOS中 UIMPMediaPickerController播放系统音乐
  14. 【高并发架构】Redis缓存高并发之-主从架构
  15. Fiddler死活抓不了HTTPS包解决办法
  16. [转帖]你所不知道的C和C++运行库
  17. unity提示can't add script解决办法
  18. Just Oj 2017C语言程序设计竞赛高级组A: 求近似值(矩阵快速幂)
  19. Java中位运算符的使用
  20. c/c++本地时间获取

热门文章

  1. Java构造器和方法的区别
  2. linux环境中 对tomcat配置java环境
  3. iOS- 自定义UIView (测试block和代理)
  4. Web Api2 用户认证模板解析---本地用户
  5. [JavaEE] applicationContext.xml配置文件使用合集
  6. hadoop群集安装中碰到的问题
  7. UITabBarItem编写的时候出现得图片显示异常,和有一些比较忽略的方法总结
  8. oracle使用pfile或者spfile启动
  9. 剑指Offer02 替换空格
  10. Redis中的批量删除数据库中的Key