jQuery之某某书写模式,求解释

问题描述

前些天阅读了某网友上传的一段jQuery代码,他,自己写的一个横拉级别选择的控件。Code中的jQuery书写模式感觉很优雅,自己简单的研究试写了一下,模式的大致意思理解了,但其中的一些细节地方还是不太明白, 趁空闲之余放在iteye上让大家帮我解释一下,谢谢指点 外部js文件 jQuery.plugin-model // JavaScript template using Windows Script Host(function($){$.extendPlugin = function(other){var params = $.extend({name : "JackQiu",age : 22,sex : "Fmale",job : "programer",addr : "成都高新区孵化园"},other||{});var action = {initPeople : function(){var say = "Hi!, goodmoring, eveybody who is here. my name is " + params.name + ",and i'm" + params.age + "yeas old, my job is"+params.job + "and i'm do work in " + params.addr ;alert(say);}};action.initPeople(); //初始化}})(jQuery)HTML文件 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>jQuery函数设计模式研究之选择控件</title><script type="text/javascript" src="jquery-1.4.2.js"></script><script type="text/javascript" src="jQuery.plugin-model.js"></script><script type="text/javascript">$(function(){$("#open").click(function(){$.extendPlugin({name : "JackZhang",age : 22,sex : "Fmale",job : "programer",addr : "成都高新区孵化园"});});});</script></head><body>Hello World!<br/><input type="button" name="open" id="open" value="open" /></body></html>基本模式是这样的(function($){ $.extendPlugin = function(p){ var param = $.extend({ name : "JackQiu", age : "22", sex : "Fmale" },p||{}); var action = function(){ }; }})(jQuery) 我不明白的地方是: (function($){ })(jQuery) 、 p||{} 、 $.extendPlugin , 能帮我解释这三个地方的意思 ,谢谢

解决方案

// (function($){ })(jQuery) (function($){...})(jQuery)实际上是匿名函数function(arg){...}这就定义了一个匿名函数,参数为arg而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:(function(arg){...})(param)这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数而(function($){...})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQueryvar fn = function($){....};fn(jQuery);一样 // p||{}这里是为了防止传一个undefined进来,而导致报错。而采用P||{},如果p存在,就直接让p合并,如果p不存在,就用一个{}去合并。// $.extendPlugin定义插件。

时间: 2024-07-30 21:37:52

jQuery之某某书写模式,求解释的相关文章

一个jquery表单验证问题 求解释

问题描述 <scriptsrc="Scripts/jquery-1.4.1.min.js"type="text/javascript"></script><scriptsrc="Scripts/jquery.validate.js"type="text/javascript"></script><script>$(document).ready(function(){

jsp-下边的代码谁懂啊,大神求解释。顺道告诉我下想学关于这个看什么,谢谢啦

问题描述 下边的代码谁懂啊,大神求解释.顺道告诉我下想学关于这个看什么,谢谢啦 <head> <jsp:include page='/res/inc/inc.jsp' flush='true'/> <style> .FixedTitleRow { position: relative; top: expression( this.offsetParent.scrollTop ); z-index: 10; background-color: #ffffff; } .Fi

jquery-easyui treegrid 为啥只显示一行 求解释

问题描述 easyui treegrid 为啥只显示一行 求解释 1. html代码: 2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content=

biginteger-Java中n!的代码看不懂啊,求解释

问题描述 Java中n!的代码看不懂啊,求解释 import java.math.BigInteger; import java.util.*; public class Main{ protected static ArrayList table = new ArrayList(); static { table.add(BigInteger.valueOf(1)); } public static synchronized BigInteger factorial(int x) { for

孙鑫-Visual C++的一段代码搞不懂求解释

问题描述 Visual C++的一段代码搞不懂求解释 说一下自己的理解.题目是孙鑫老是的文本输出的例子. 1:GetBkColor得到背景白色,然后SetTextColor(白色)把背景白色设置为文字颜色.跟着clr应该是赋值得到白色了吧,但是F5看的时候是黑色,就要原文字颜色.我这么理解应该错了 1 COLORREF clr=dc.SetTextColor(dc.GetBkColor()); //GetBkColor属于dc对象,改变dc中的背景值(白色).然后SetTextColor用白色值

ancy orm-用FancyForm添加用户角色,求解释这段代码,

问题描述 用FancyForm添加用户角色,求解释这段代码, var form = $('#form').FancyForm({ title: '添加角色' width: 345 height: 325 inputWidth: 190 labelWidth: 60 url: '<%=path %>/sysRoleController/addRole.do' params: { param1: 1 param2:'string' } defaults: { type: 'string' } it

ip地址-求解释下这段代码...感激不尽

问题描述 求解释下这段代码...感激不尽 u_long ulDestIP; u_long ulDestIP1=inet_addr(a); u_long ulDestIP2=inet_addr(b); unsigned long count = ntohl(ulDestIP2 - ulDestIP1)-1; struct in_addr in; unsigned long hostip; for(unsigned int i = 0; i <=count+1; i++) { hostip = nt

jquery代码的问题,求指导

问题描述 jquery代码的问题,求指导 同图片一样 比如说提取提起后面的下拉款是七天 完了输入金额(10000) 不选择上浮(可选可不选) 相差天数= 用提取日期-存入日期也就是2016-5-31 - 2016-5-16 = 15天 (提取日期不可小于存入日期) 下面图片的出了 7天的利息是 2.14 因为相差天数 是15天 也就是 2个七天 一个一天 所以我想得到的是 2个七天的利息 和一个 活期的利息 的总额 下面是我的代码 求大神看看那写错了 解决方案 你改下 function getD

下面代码是啥意思 求解释 qt新手

问题描述 下面代码是啥意思 求解释 qt新手 p.drawEllipse(QPoint((i + 1) * 40 (j + 1) * 40) 15 15);是啥意思 解决方案 drawEllipse( x y ab );表示以坐标(xy)为中心画一个长为a宽为b的椭圆以你的代码为例就是绘制一个 中心(40(i+1)40(j+1))长轴(长)为a短轴(宽)为b的椭圆其中ij应该是传入的参数 解决方案二: 在那个区域内绘制椭圆啊 解决方案三: QPoint((i+1)*40, (j+1)*40)坐标