extend , $.extend

extend
用來枚舉屬性的對(duì)象工具函數(shù)
/*
 * 把p中的可枚舉屬性復(fù)制到o中,并返回o
 * 如果o和p中含有同名屬性,則覆蓋o中的屬性
 * 這個(gè)函數(shù)并不處理getter和setter以及復(fù)制屬性
 */
function extend(o,p) {
  for(prop in p) {
    o[prop] = p[prop];
  }
  return o;  
}
$.extend(為jquery類添加靜態(tài)方法)
> extend(result, item1, item2, ...)
   該方法將所有的參數(shù)項(xiàng)都合并在result中,并返回result,破壞result的結(jié)構(gòu)

> extend({}, item1, item2, ...)
   將所得的結(jié)果全部合并在{}中
    let item={name:"zhangsan",age:23};
    let item1={name:"lisi",sex:"gril"};
    let result=$.extend({},item,item1);
    結(jié)果: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);
      結(jié)果:
      result1 = {name: "lisi", age:23, address: {provice:"安徽",city: "北京"}, sex: "gril"}
      result2 = {name: "lisi", age: 23, address: {city:"北京"}, sex: "gril"}

> $.extend(item)  
   該方法是將item合并到j(luò)query的全局對(duì)象中,類似為jquery全局對(duì)象添加一個(gè)靜態(tài)方法
   $.extend({
     say: function(val) { console.log(val); }
   })
   $.say("emmmm");

> $.fn.extend(item)
   該方法為每一個(gè)實(shí)例添加一個(gè)實(shí)例方法
   $.fn.extend({
     say: function(val) { console.log(val); }
   })
   $("#id").say("emmmm");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容