Js-$.extend方法使方法参数更灵活

在做JS开发时,我们将第三方复杂的插件进行封装,然后对外公开一个很简单的方法接口,这是开发时常用的方法,在JS里,我们的方法参数通常使用JQ的$.extend 扩展方法来实现

  function extend(arr) {
            arr = $.extend({ name: ‘zzl‘, sex: ‘male‘, age: 31 }, arr || {});
            alert("[Name:]" + arr.name + "[Sex:]" + arr.sex + "[Age:]" + arr.age);
         }

在页面调用时:

<a href="#" onclick="extend();return false;">extends</a>

输出内容为:

即如果我们没有为arr指定值,它会把默认的值进行输出,如果我们为arr对象的某个属性赋值,结果会怎样?

<a href="#" onclick="extend({name:‘占占‘});return false;">extends</a>

上面代码,我们改变了name属性的性,结果输出为:

即,它只修改了指定属性的值,对象的其它值保持为原来的默认值。

JS中的||运算符与C#中的||作用相同,都是“逻辑或”,而在本例中它的用法是,如果arr对象为空,然后将{}赋值给它,这个功能类似于C#里的

??运算符,所以JS里的||挺强大,呵呵。

时间: 2024-10-28 19:16:54

Js-$.extend方法使方法参数更灵活的相关文章

更灵活的定位内存地址的方法(学习汇编)

1.and指令:逻辑与指令,按位进行与运算.与1不变,与0变0,可将对象相应位设为0. 2.or指令:逻辑或指令,按为进行或运算.或1变1,或0变0,可将对象位设为1. 3.[BX+idata]的几种表现形式: mov ax,[200+bx] mov ax,200[bx] mov ax,[bx].200 4.SI和DI是8086CPU中和Bx功能相似的寄存器,只是不能分成两个8位的寄存器来用. 5.[BX+SI]进行内存地址定位的几种形式: mov ax,[bx][si] mov ax,[bx+

汇编语言:第七章 更灵活定位内存地址的方法

7.1 and 和 or 指令 二进制的and or 可以将某位归0或置1 7.2 关于ASCII码 7.3 以字符形式给出数据 data segment db 'unIX'                    //相当于db 75H,6EH,49H,58H db 'foRK' //相当于db 66H,6FH,52H,4BH data ends mov al,'a'   //相当于mov al,61H 7.4 大小写转换问题 db 'BaSiC' db 'iNfOrMaTiOn' 如何将第一个

JavaScript之jQuery-9 jQuery 开发插件(添加新全局函数、添加jQuery对象方法、添加新简写方法、方法参数)

一.添加新的全局函数 全局函数 - 全局函数,实际上就是jQuery对象的方法,从实践角度看,它们是位于jQuery命名空间内部的函数 - jQuery内置的某些功能是通过全局函数实现的 - $.ajax()函数就是典型的全局函数 - 向jQuery命名空间添加一个函数,只需要将这个新函数指定为jQuery的一个属性值   - 如果要使用该全局函数时,可通过一下代码调用 - 也可以通过别名来调用 添加多个函数 - 如果我们想在插件中提供多个全局函数,可以独立的声明这些函数   - 还可以使用$.

【转】jquery ajax 方法及各参数详解

在使用jquery的时候,我们经常用到jquery中对ajax的封装,下面对ajax函数的各参数详细说明和讲解,以便更好的理解和使用 $.get(url, data, callback,type) 和 $.post(url, data, callback, type). 1. jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据 这个是jQuery 的底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等. $.ajax() 返回其创建的 XML

【代码优化】方法签名及参数检查

参数检查: 绝大多数方法的构造器对于传递给它的参数值会有某些限制.例如,索引值必须是非负数,对象不能 为null等等. 如果传递无效参数给方法,在执行前没对参数进行检查,该方法可能在处理过程中失败,并且产生令 人费解的异常.更糟的是,该方法可以正常返回数据.但是会得到一个错误的结果,你还认为是正确的, 没发现其中的倪端. 所以对于方法参数的检查是有必要的. 常见的几个错误,IllegalArgumentException,IndexOutOfBoundsException和NullPointEx

C# 委托系列(一)将方法作为方法的参数

http://t.qq.com/baijialeyi6756 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在.本文中,我将通过两个范例由浅入深地讲述什么是委托.为什么要使用委托.事件的由来.委托和事件对Observer设计模式的意义..Net Framework中的委托和事件,对它们的中间代

ThinkPHP Mongo驱动update方法支持upsert参数

Mongo数据库update操作有一个相对于Mysql的关键特性,它可以使用upsert模式,当更新的数据不存在时,直接插入,但是ThinkPHP的Mongo驱动居然不支持这一特性,没办法,自力更生了. ThinkPHP的driver层,见由于支持多种DB,又使用了继承,使用得类层次结构较深,负责Mongo驱动的是DbMongo.class.php,文件位于ThinkPHP\Extend\Driver\Db,修改Update方法的$options参数,如果update方法提供了upsert选项时

jquery引用方法时传递参数

经常到网上去下载大牛们写的js插件.每次只需将js引用并设置下变量就行了,但一直没搞明白原理(主要是大牛们的代码太简练了-,-). 这次弄清了如何传递.设置多个(很多个)参数. 如 方法为function lunbo(){}; 在调用.设置的时候写: lunbo({ speed:200, wrapper:'#id', ease:'easing' }) 则,在方法内获取的时候: function lunbo(options){ var set=$.extend({},options); var _

黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入

1.1 高级for循环(示例1) 格式:for(数据类型 变量名 : 被遍历的集合(Collection)或者数组){ } 对集合进行遍历.只能获取集合元素.但是不能对集合进行操作. 迭代器除了遍历,还可以进行remove集合中元素的动作.如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作. 1.1.2 传统for和高级for有什么区别呢? 高级for有一个局限性.必须有被遍历的目标. 1 示例1: 2 import java.util.*; 3 4 class For