jQuery之常用的工具函數(shù)詳解(一)

$.extend() jQuery中拷貝對象的方法

  $(function(){  
        var a={ 
            name:'hello'
        }
        var b={}
        b=a;
        console.log(b);  //  { name:'hello'}
        b.name='Leo';
        console.log(b);  //  { name:'Leo'}
        console.log(a);  //  { name:'Leo'}

 //如果直接將a的對象賦給b,那么會(huì)產(chǎn)生引用的相關(guān)問題,因?yàn)樾薷腷中的值,會(huì)直接影響a中的值,沒有達(dá)到拷貝的效果

        var a={ 
            name:'hello'
        }
        var b={} 
        $.extend(b,a);
        console.log(b);  //  { name:'hello'}
        b.name='Leo';
        console.log(b);  //  { name:'Leo'}
        console.log(a);  //  { name:'hello'}

//使用$.extend()方法,修改b中的值,則不會(huì)影響a中的值,達(dá)到拷貝的效果

        var a={ 
            name:'hello'
        }
        var b={
            age:22
        }
        var c={} 
        $.extend(c,a,b);
        console.log(c);  //{name: "hello", age: 22}
        //可以實(shí)現(xiàn)多個(gè)拷貝

        var a={ 
            name:{ age:22 }
        }
        var b={}   
        $.extend(b,a);
        console.log(b);   //{ name:{age:22}}
        b.name.age=30;
        console.log(b);   //{ name:{age:30}}
        console.log(a);   //{ name:{age:30}}

//以上的執(zhí)行結(jié)果我們會(huì)發(fā)現(xiàn),a中的值還是發(fā)生了變化,這是因?yàn)?.extend()默認(rèn)是淺拷貝的方式
//不支持多層級的對象引用,如何實(shí)現(xiàn)深拷貝,需要設(shè)置第一個(gè)參數(shù)為true

          var a={ 
            name:{ age:22 }
        }
         var b={}      
        $.extend(true,b,a);
        console.log(b);   //{ name:{age:22}}
        b.name.age=30;
        console.log(b);   //{ name:{age:30}}
        console.log(a);   //{ name:{age:22}}
     })

$.proxy() 改變函數(shù)內(nèi)this的指向

$(function(){

      function show(a,b){
          alert(a);
          alert(b);
          alert(this);
      }
      show(); // this->window
      show.call(document) //this->document
      //除了用以上方法,還可以用$.proxy();
      $.proxy(show,document)();  //this->document
      $.proxy(show,document)(3,4); //可以接受參數(shù)
      $.proxy(show,document,3,4)(); //還可以這樣的形式接受參數(shù),那為什么要以這樣的形式接受參數(shù),舉個(gè)小例子。
     $('input').on('click',$.proxy(function(){
        alert(a);
        alert(b);
        alert(this);
     },document,3,4));
   })

$. parseJSON() 要解析的 JSON 字符串。

 var a='{"name":"leo"}';
 console.log($.parseJSON(a));   //->{"name":"leo"}
//解析嚴(yán)格格式類型的JSON字符串

$.type() 判斷數(shù)據(jù)類型

        var a=1;
        console.log($.type(a));  //->number
        var b='abc';        
        console.log($.type(b));  //->string
        var c=[1,2,3];      
        console.log($.type(c));  //->array
        var d={'name':'sun'}; 
        console.log($.type(d));  //->object

$.isFunction() 判斷是否是函數(shù)類型

var e=function(){}
console.log($.isFunction(e));  //->true 

$.isNumeric() 判斷是否是數(shù)字類型

var f=1;  
console.log($.isNumeric(f));   //->true

$.isArray() 判斷是否是數(shù)組類型

var g=['a']
console.log($.isArray(g));    //->true    

$.isEmptyObject() 判斷是否是空的對象

var a=null;              
console.log($.isEmptyObject(a));   //->true

后續(xù)會(huì)不斷更新其它工具函數(shù)用法,敬請期待!?。?/h3>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進(jìn)階之旅閱讀 115,566評論 24 450
  • Zepto 提供了豐富的工具函數(shù),下面來一一解讀。 源碼版本 本文閱讀的源碼為 zepto1.2.0 $.exte...
    對角另一面閱讀 344評論 0 0
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級特性。 1....
    LaBaby_閱讀 1,505評論 0 2
  • 家里多了只倉鼠。同事在路上撿到的,知道我家小子一直想養(yǎng)一只,于是這只小倉鼠雙十二當(dāng)天被我?guī)Щ亓思摇? ...
    清若0215閱讀 365評論 0 1
  • 東城酒肆,一壺?zé)苾山锱H?集市里的塵埃被馬匹飛馳而過所揚(yáng)起 殘破的幕簾還在搖擺,吹笛者挽起衣袖 這個(gè)世界是一個(gè)巨...
    孤獨(dú)乞丐閱讀 560評論 0 0

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