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 相关文章推荐
映彩衣的js随笔(js图片切换效果)
Jul 31 Javascript
js显示时间 js显示最后修改时间
Jan 02 Javascript
JS自动适应的图片弹窗实例
Jun 29 Javascript
parentElement,srcElement的使用小结
Jan 13 Javascript
Bootstrap每天必学之js插件
Nov 30 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
Apr 12 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
vue做移动端适配最佳解决方案(亲测有效)
Sep 04 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
Feb 26 Javascript
element-ui tree结构实现增删改自定义功能代码
Aug 31 Javascript
使用Vue实现一个树组件的示例
Nov 06 Javascript
详解 TypeScript 枚举类型
Nov 02 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 MSSQL 存储过程的方法
2008/12/24 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
jquery选择器简述
2015/08/31 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
Python变量和数据类型详解
2017/02/15 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
python speech模块的使用方法
2020/09/09 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
战略合作协议书范本
2014/04/18 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
电力培训心得体会
2014/09/02 职场文书
护理医院见习报告
2014/11/03 职场文书
2014年团工作总结
2014/11/27 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
辞职信格式范文
2015/05/13 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL