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 相关文章推荐
asp.net下利用js实现返回上一页的实现方法小集
Nov 24 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
javascript数字格式化通用类 accounting.js使用
Aug 24 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
Jun 24 Javascript
JQuery中DOM事件合成用法实例分析
Jun 13 Javascript
Bootstrap框架安装使用详解
Jan 21 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
Sep 30 Javascript
原生js实现简单的焦点图效果实例
Dec 14 Javascript
微信小程序商品详情页底部弹出框
Nov 22 Javascript
如何修改Vue打包后文件的接口地址配置的方法
Apr 22 Javascript
Vue如何提升首屏加载速度实例解析
Jun 25 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中函数内引用全局变量的方法
2008/10/20 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
python list语法学习(带例子)
2013/11/01 Python
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
利用python批量检查网站的可用性
2016/09/09 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
与UNIX有关的几个名词
2015/09/17 面试题
新学期校长寄语
2014/01/18 职场文书
单位介绍信范文
2014/01/18 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
禁止酒驾标语
2014/06/25 职场文书
体育专业求职信
2014/07/16 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
英文产品推荐信
2015/03/27 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
MySQL 覆盖索引的优点
2021/05/19 MySQL
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL