美文网首页
extend , $.extend

extend , $.extend

作者: Dolores_520 | 来源:发表于2018-03-15 11:09 被阅读0次
    extend
    用来枚举属性的对象工具函数
    /*
     * 把p中的可枚举属性复制到o中,并返回o
     * 如果o和p中含有同名属性,则覆盖o中的属性
     * 这个函数并不处理getter和setter以及复制属性
     */
    function extend(o,p) {
      for(prop in p) {
        o[prop] = p[prop];
      }
      return o;  
    }
    
    $.extend(为jquery类添加静态方法)
    > extend(result, item1, item2, ...)
       该方法将所有的参数项都合并在result中,并返回result,破坏result的结构
    
    > extend({}, item1, item2, ...)
       将所得的结果全部合并在{}中
        let item={name:"zhangsan",age:23};
        let item1={name:"lisi",sex:"gril"};
        let result=$.extend({},item,item1);
        结果:Result={name:"lisi",age:23,sex:"gril"};
    
    > extend(bool,{},item1,item2….)
        bool:true   深拷贝
        bool:false  浅拷贝
        * eg:
          let item={name:"zhangsan",age:23, address:{ provice: "安徽",city: "合肥" }};
          let item1={name:"lisi",sex:"gril", address:{ city: "北京" }};    
          let result1 = $.extend(true,item,item1);
          let result2 = $.extend(false,item,item2);
          结果:
          result1 = {name: "lisi", age:23, address: {provice:"安徽",city: "北京"}, sex: "gril"}
          result2 = {name: "lisi", age: 23, address: {city:"北京"}, sex: "gril"}
    
    > $.extend(item)  
       该方法是将item合并到jquery的全局对象中,类似为jquery全局对象添加一个静态方法
       $.extend({
         say: function(val) { console.log(val); }
       })
       $.say("emmmm");
    
    > $.fn.extend(item)
       该方法为每一个实例添加一个实例方法
       $.fn.extend({
         say: function(val) { console.log(val); }
       })
       $("#id").say("emmmm");
    

    相关文章

      网友评论

          本文标题:extend , $.extend

          本文链接:https://www.haomeiwen.com/subject/qrbcqftx.html