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 相关文章推荐
firefox中JS读取XML文件
Dec 21 Javascript
JQuery 学习笔记 选择器之六
Jul 23 Javascript
JavaScript flash复制库类 Zero Clipboard
Jan 17 Javascript
JavaScript中判断整数的多种方法总结
Nov 08 Javascript
Javascript优化技巧之短路表达式详细介绍
Mar 27 Javascript
动态更新highcharts数据的实现方法
May 28 Javascript
js 提交form表单和设置form表单请求路径的实现方法
Oct 25 Javascript
AngularJS指令与指令之间的交互功能示例
Dec 14 Javascript
Vue中对拿到的数据进行A-Z排序的实例
Sep 25 Javascript
QRCode.js二维码生成并能长按识别
Oct 16 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
Sep 12 Javascript
vue实现拖拽交换位置
Apr 07 Vue.js
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接口数据加密、解密、验证签名
2015/03/12 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
师德师风个人反思
2014/04/28 职场文书
某某同志考察材料
2014/05/28 职场文书
优秀校长事迹材料
2014/12/24 职场文书
课外活动总结
2015/02/04 职场文书
学生逃课检讨书
2015/02/17 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL