$.extend , $.fn.extend 以及jquery的插件,继承

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html;charset=utf-8">
<meta name="viewport" content="user-scalable=no,initial-scale=1.0,maximum-scale=1.0" />
<meta name="apple-touch-fullscreen" content="yes">
<meta name="format-detection" content="telephone=no">
<title>$.extend测试</title>
<script src="../config/js/jquery.js"></script>
<script>

    $(function(){
        //===========================================1
        //$.extend(dist,src1,src2,...) dist继承src1,src2...
        var  tt =$.extend({},{a:"a",b:"b"},{c:"c"}); //tt = {a:"a",b:"b",c:"c"}
        console.log(tt);

        //相同属性名相同的 属性值会被覆盖
        var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"});
        console.log(result);

        //当只有一个参数,jquery的全局对象中去,jquery 函数继承该 参数的属性 (这也是jquery函数插件的写法)
        var tt3 = $.extend({
            hello:function(){alert('hello');}
        });
        console.log(tt3);//返回jquery对象 jquery直接继承这个属性,这也是插件的写法

       //===========================================2
       // $.fn.extend(src)
       //该方法将src合并到jquery的实例对象中去(实例对象而不是全局对象 $.extend()测试全局对象,实际上$.fn=$.prototype),如:
       $.fn.extend({
           hello:function(){alert('hello');}
       });
       var tt4 =new $();
       tt4.hello();   //弹出hello

        //=======================================3 Jquery的extend方法还有一个重载原型
        /*
         extend(boolean,dest,src1,src2,src3...)
         参数: boolean 第一个参数 ,true
         */

        //=====深copy
        var result3=$.extend( true, {},
                { name: "John", location: {city: "Boston",county:"USA"} },
                { last: "Resig", location: {state: "MA",county:"China"} } );
        console.log(result3);
        //我们可以看出src1中嵌套子对象location:{city:"Boston"},src2中也嵌套子对象location:{state:"MA"},第一个深度拷贝参数为true,那么合并后的结果就是:
        /*
        result4={name:"John",last:"Resig",
            location:{city:"Boston",state:"MA",county:"China"}}
         */
        //也就是说它会将src中的嵌套子对象也进行合并,而如果第一个参数boolean为false,我们看看合并的结果是什么,如下:

        //浅copy  对象的子对象 直接覆盖进行处理
        var result4=$.extend( false, {},
            { name: "John", location:{city: "Boston",county:"USA"} },
            { last: "Resig", location: {state: "MA",county:"China"} }
       );
       console.log(result4);
        //那么合并后的结果就是:result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}


    });

</script>
</head>
<body>
</body>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值