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 相关文章推荐
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 Javascript
JQuery调用WebServices的方法和4个实例
May 06 Javascript
javascript实现的一个带下拉框功能的文本框
May 08 Javascript
JS实现自定义简单网页软键盘效果代码
Nov 05 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
Apr 06 Javascript
Jquery元素追加和删除的实现方法
May 24 Javascript
JS与jQuery实现隔行变色的方法
Sep 09 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
Jul 23 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
vue iview多张图片大图预览、缩放翻转
Jul 13 Javascript
详解Webpack抽离第三方类库以及common解决方案
Mar 30 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 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
一个基于PDO的数据库操作类
2011/03/24 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
Python中字典的基本知识初步介绍
2015/05/21 Python
Django框架中的对象列表视图使用示例
2015/07/21 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
通过shell+python实现企业微信预警
2019/03/07 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
详解Python的三种拷贝方式
2020/02/11 Python
利用python实现逐步回归
2020/02/24 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
python网络编程之五子棋游戏
2020/05/14 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
Python如何执行系统命令
2020/09/23 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
蒂娜商店:Tiina the Store
2019/12/07 全球购物
总经理职责范文
2013/11/08 职场文书
采购部部门职责
2013/12/15 职场文书
应届大学生求职信
2014/07/20 职场文书
如何写辞职书
2015/02/26 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
Redis分布式锁的7种实现
2022/04/01 Redis