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图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
Nov 09 Javascript
使用jquery实现以post打开新窗口
Mar 19 Javascript
javascript日期处理函数,性能优化批处理
Sep 06 Javascript
JavaScript解八皇后问题的方法总结
Jun 12 Javascript
利用JavaScript判断浏览器类型及版本
Aug 23 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
Apr 23 Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 Javascript
详解AngularJS ui-sref的简单使用
Apr 24 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 jQuery
vue3.0 项目搭建和使用流程
Mar 04 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 for 循环语句使用方法详细说明
2010/05/09 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
JS document对象简单用法完整示例
2020/01/14 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
跟老齐学Python之list和str比较
2014/09/20 Python
Python中的迭代器漫谈
2015/02/03 Python
Python 备份程序代码实现
2017/03/06 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
Python自动创建Excel并获取内容
2020/09/16 Python
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
《小猪家的桃花树》教学反思
2014/04/11 职场文书
七一建党节慰问信
2015/02/14 职场文书
教师岗位职责范本
2015/04/02 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
SQL基础的查询语句
2021/11/11 MySQL