$.extend 的相關用法


$.extend 的相關用法

 

1.1 $.extend(result,item1,item2…..)

將所有的參數項都合並result中,返回result,會破壞result的結構。

 

1.2 $.extend({},item1,item2,……)

將所得的結果全部合並在{}中,並返回,不會破壞原有的項的結構。

 

1.3 $.extend(bool,{},item1,item2….)

Extend方法還有帶bool型參數的重載。

bool型參數為true表示深拷貝,為false時表示淺拷貝。

示例:

var obj={name:“vanida”,age:25,address{provice:”河南”,city:”鄭州”}};

var obj1={sex:”girl”,address{city:” 上海”}};

var result=$.extend(true,obj,obj1);

var result1=$.extend(false,obj,obj1);

結果:

result={name:“vanida”,age:25,sex:”gril”,address:{provice:”河南”,city:”上海”}};

result1={name:“vanida”,age:25,sex:”gril”,address:{ city:”上海”}};

說明:

當參數為ture時,即為深拷貝,obj的子項有與obj1中的子項相同屬性的值不一樣時,obj中子項的值會將obj1子項中的值給覆蓋,當子項obj的屬性跟obj1中的屬性不同時,會與obj進行合並。

當參數為false時,子項obj中的子項中與obj1中的子項屬性相同時,obj1中子項的屬性值會將obj中的值給完全覆蓋。

 

1.4 $.extend(item)

該方法是將item合並到Jquery的全局對象中去,相當於為Jquery全局對象添加了一個

靜態方法(對應這里的靜態方法,當然還有實例方法,在后邊有介紹)。

示例:

$.extend({SayHello:function(value){alert(“hello “+value);}});

這樣寫過之后,就可以直接調用SayHello方法:

$.SayHello(“Olive”);

說明:該方法相當於為Jquery類添加了新的方法。

 

1.5 $.fn.extend(item)

上邊提到的$.extend(item)說是為Jquery類添加了靜態方法,那么這里的$.fn.extend(item)就是為每一個實例添加一個實例方法了。

示例:

$.fn.extend({sayName:function(name){alert(“hello “+name);}});

這樣寫過之后,在獲取每一個示例之后,都可以調用該方法:

$(“#id”).sayName(“lucas”);

 

1.6 $.fn是指jquery的命名空間,加上fn上的方法及屬性,會對jquery實例每一個有效。

如擴展$.fn.hello(),即$.fn.hello()是對jquery擴展了一個hello方法,那么后面你的每一個jquery實例都可以引用這個方法了.

那么你可以這樣子:$("#dom").hello();

源碼:

jQuery.fn = jQuery.prototype ={

   init: function( selector, context ){//.... 

   //......

};

 

轉自: https://www.cnblogs.com/xiaojingyuan/p/5755825.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM