jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)


Posted in Javascript onOctober 20, 2010

我选择了jQuery,最主要是它的思想“write less,do more",因为我是一个挑剔的人,以前写过的代码,会时不时翻出来,看看有没有可以精简,优化的地方。一来是对不断学习的推动,二来可以将新的思想,技术应用到里面去。
对于jQuery插件的写法,以前就有介绍过,网上也有很多例子。 这里简要地进行些写法,主要是简写的说明,见下列代码:
<script type="text/javascript" src="jquery-1.4.2.js"></script>

<script type="text/javascript"> 
//jQuery插件的写法(需要传入操作对象) 
;(function($) 
{ 
//PI_TestPlugIn为插件名称,也是插件的操作对象 
//为了不会与其它插件名重复,这里我使用PlugIn的缩写PI_来定义插件对象前缀 
$.fn.PI_TestPlugIn= 
{ 
//该插件的基本信息 
Info:{ 
Name: "TestPlugIn", 
Ver: "1.0.0.0", 
Corp: "Lzhdim", 
Author: "lzhdim", 
Date: "2010-01-01 08:00:00", 
Copyright: "Copyright @ 2000-2010 Lzhdim Technology Software All Rights Reserved", 
License: "GPL" 
}, 
//具有参数的函数对象,这里参数是一个对象,具有属性 
FunctionWithParams:function(paramObj) 
{ 
//使用参数,是否使用默认值 
var params = paramObj ? paramObj : new function(){ 
param1= "1"; 
param2= "2"; 
}; 
return this.Info.Name + ".FunctionWithParamObject"; 
}, 
//具有参数的函数对象,这里参数是一个变量 
FunctionWithParam:function(varparam) 
{ 
//使用参数,是否使用默认值 
var param = varparam ? varparam : null; 
return this.Info.Name + ".FunctionWithParam"; 
}, 
//不具有参数的函数对象 
FunctionWithOutParam:function() 
{ 
return this.Info.Name + ".FunctionWithOutParam"; 
} 
}; 
})(jQuery); 
//jQuery拓展函数的写法(不需要传入操作对象),即API函数 
;(function($) 
{ 
$.extend({ 
//PIF_TestExtendFunction为拓展函数的操作对象 
//为了不会与其它插件名重复,这里我使用PlugIn的缩写PI_来定义插件对象前缀 
PIF_TestExtendFunction: 
{ 
//该拓展函数的基本信息 
Info:{ 
Name: "TestExtendFunction", 
Ver: "1.0.0.0", 
Corp: "Lzhdim", 
Author: "lzhdim", 
Date: "2010-01-01 08:00:00", 
Copyright: "Copyright @ 2000-2010 Lzhdim Technology Software All Rights Reserved", 
License: "GPL" 
}, 
//具有参数的函数对象 
FunctionWithParams:function(paramObj) 
{ 
//使用参数,是否使用默认值 
var params = paramObj ? paramObj : { 
param1: "1", 
param2: "2" 
}; 
return this.Info.Name + ".FunctionWithParamObect"; 
}, 
//具有参数的函数对象,这里参数是一个变量 
FunctionWithParam: function (varparam) { 
//使用参数,是否使用默认值 
var param = varparam ? varparam : null; 
return this.Info.Name + ".FunctionWithParam"; 
}, 
//不具有参数的函数对象 
FunctionWithOutParam:function() 
{ 
return this.Info.Name + ".FunctionWithOutParam"; 
} 
} 
}); 
})(jQuery); 
$(function () 
{ 
//测试插件 
var params = 
{ 
param1: "3", 
param2: "4" 
}; 
alert($(this).PI_TestPlugIn.FunctionWithParams(params)); 
alert($.PIF_TestExtendFunction.FunctionWithOutParam()); 
}); 
</script>
Javascript 相关文章推荐
PJ Blog修改-禁止复制的代码和方法
Oct 25 Javascript
javascript实现颜色渐变的方法
Oct 30 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
Jun 09 Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 Javascript
浅析javascript中的事件代理
Nov 06 Javascript
JS中JSON对象和String之间的互转及处理技巧
Apr 06 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
Apr 27 Javascript
Angular ng-repeat 对象和数组遍历实例
Sep 14 Javascript
webpack常用配置项配置文件介绍
Nov 07 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
May 05 Javascript
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
node实现socket链接与GPRS进行通信的方法
May 20 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
Oct 20 #Javascript
Javascript技巧之不要用for in语句对数组进行遍历
Oct 20 #Javascript
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 #Javascript
理解Javascript_12_执行模型浅析
Oct 18 #Javascript
理解Javascript_11_constructor实现原理
Oct 18 #Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
Oct 18 #Javascript
jQuery Validation实例代码 让验证变得如此容易
Oct 18 #Javascript
You might like
php $_SERVER当前完整url的写法
2009/11/12 PHP
PHP版本如何选择?应该使用哪个版本?
2015/05/13 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
vue ssr 指南详读
2018/06/29 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
简单了解python的内存管理机制
2019/07/08 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
个人公司授权委托书范本
2014/10/12 职场文书
市场营销计划书范文
2015/01/16 职场文书
出纳岗位职责
2015/01/31 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
文明上网主题班会
2015/08/14 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
深入浅析React中diff算法
2021/05/19 Javascript
python中%格式表达式实例用法
2021/06/18 Python
python百行代码实现汉服圈图片爬取
2021/11/23 Python