jQuery的封装

jQuery的封装ajax请求

在 jQuery中 给我们封装了 Ajax请求

不要考虑兼容,跨域等问题,jQuery全部解决,只需要在设定请求时,设定不同的参数,就可以完成不同的请求

jqery的封装原理:

1、js的全局代码区只有一个,这样就会造成同名变量的值会被覆盖。‘

2、使用对象封装,将代码封装到对象中,但对象如果被覆盖,则全部失效,风险极高。

3、使用工厂模式,将代码进行封装,但是并没有解决问题。

4、将封装的函数名字去除,避免覆盖,但是函数没有办法调用了

5、匿名自调用。’可以在页面加载的时候调用一次,但是不能重复调用,并且数据没有办法获取。

6、使用闭包,在全局区中不能够获取函数体内的数据。使用更大作用域的变量来记录小作用域变量的值。

jquery中的extend()方法

通常我们使用jquery的extend()方法时,大都是为了实现默认字段的覆盖,即若传入某个字段的值,则使用传入值,否则使用默认值。

      function getOpt(option){
       var _default = {
        name : 'wenzi',
        age : '25',
        sex : 'male'
    }
       $.extend(_default, option);
       return _default;
    }
       getOpt();  // {name: "wenzi", age: "25", sex: "male"}
       getOpt({name:'bing'}); // {name: "bing", age: "25", sex: "male"}
       getOpt({name:'bing', age:36, sex:'female'});  // {name: "bing", age: 36, sex: "female"}

$.extend()也提供了深度拷贝的方法:jQuery.extend( [deep ], target, object1 [, objectN ] )。若第一个参数是boolean类型,且值是true,那么就会把第二个参数作为目标参数进行合并。

var obj = {name:'wenzi', score:80};
        var obj1 = {score:{english:80, math:90}}
        $.extend(true, obj, obj1);
        obj.score.english = 10;
        console.log(obj.score.english);   // 10
       console.log(obj1.score.english);  // 80
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值