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 相关文章推荐
javascript XML数据显示为HTML一例
Dec 23 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
May 23 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
May 05 Javascript
微信小程序 wxapp内容组件 icon详细介绍
Oct 31 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
Feb 12 Javascript
Angular.js指令学习中一些重要属性的用法教程
May 24 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
php中and 和 &amp;&amp;出坑指南
Jul 13 Javascript
微信小程序form表单组件示例代码
Jul 15 Javascript
微信小程序支付PHP代码
Aug 23 Javascript
React事件处理的机制及原理
Dec 03 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
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
javascript 常用功能总结
2012/03/18 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
python基础教程项目二之画幅好画
2018/04/02 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
《巨人的花园》教学反思
2014/02/12 职场文书
激励口号大全
2014/06/17 职场文书
活动主持人开场白
2015/05/28 职场文书
勇敢的心观后感
2015/06/09 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书