美文网首页
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