js中$.fn.extend()和$.extend()的应用

$.extend( [deep ], target, object1 [, objectN ] )

jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。

注意:1. 如果只为$.extend()指定了一个参数,则意味着参数target被省略。此时,target就是jQuery对象本身。通过这种方式,我们可以为全局对象jQuery添加新的函数。
2. 如果多个对象具有相同的属性,则后者会覆盖前者的属性值。

警告: 不支持第一个参数传递 false 。

参数描述
deep可选。 Boolean类型 指示是否深度合并对象,默认为false。如果该值为true,且多个对象的某个同名属性也都是对象,则该"属性对象"的属性也将进行合并。
targetObject类型 目标对象,其他对象的成员属性将被附加到该对象上。
object1可选。 Object类型 第一个被合并的对象。
objectN可选。 Object类型 第N个被合并的对象。

对于jQuery.extend:

1、jquery.extend(obj):为jQuery类添加类方法,可以理解为添加静态方法

    //给jq添加一个小数取整的方法
    jQuery.extend({
		getInteger: function(decimal) { 
			return ~~decimal 
		} 
	});
	console.log(jQuery.getInteger(2.323)); //2

2、jquery.extend( target, object1, [objectN]):用一个或多个其他对象来扩展一个对象,返回被扩展的对象

var settings = { validate: false, limit: 5, name: "foo" }; 
var options = { validate: true, name: "bar" }; 
jQuery.extend(settings, options);
//settings == { validate: true, limit: 5, name: "bar" }

对于jQuery.fn.extend:

对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。拓展一个对象到jQuery的 prototype里去,这样的话就是插件机制了

下面是为jq类添加一个点击出现警示框案例:

$.fn.extend({          
    alertWhileClick:function() {            
          $(this).click(function(){                 
                 alert($(this).val());           
           });           
     }       
});       
$("#input1").alertWhileClick(); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值