函數深入理解---函數的屬性length和方法call 和apply

來源:互聯網
上載者:User

標籤:style   blog   io   ar   color   使用   sp   on   div   

函數同樣有兩個非常好用的屬性:length 和prototypefunction fn1(){}function fn2(num1,num2){}function fn3(num1){}//函數的length就表示該函數所期望的參數值alert(fn1.length) // 0alert(fn2.length) // 2alert(fn3.length) // 1call 和apply方法查可以通過函數名稱來調用函數對於apply而言有兩個參數,第一個是調用的上下文,第二個是參數數組,可以直接把arguments傳遞進去對於call而言第一個參數是內容物件,後面的參數是不同函數參數function sum(num1,num2){    return num1 + num2;}function callSum1(num1,num2){    //使用sum 這個函數來完成一次調用,調用的參數就是callSum1這個函數的參數    //apply的第二個參數表示一組參數的數組    return sum,apply(this,arguments)}function callSum2(num1,num2){    // 關鍵就是第二個參數是數組    return sum.apply(this,[num1,num2]);}alert(callSum1(12,22));alert(callSum2(22,32));function callSum3(num1,num2){    //call是通過參數列表來完成傳遞,其它和apply沒有任何區別    return sum.call(this,num1,num2);}alert(callSum3(12,22));/*    當需要建立一個類的時候,設定類的屬性和方法需要通過this關鍵字來引用    但是特別注意:this關鍵字在調用時會根據不同的調用對象變得不同*/var color = ‘red‘;function showcolor(){    alert(this.color);}//建立了一個類,有一個color的屬性和一個show的方法function circle(color){    this.color = color;}var c= new Circle(‘yellow‘);showColor.call(this) //使用上下文來調用showColor,結果是redshowColor.call(c); //內容物件是以,結果就是yellow/*    通過以上發現,使用call和apply之後,對象中可以不需要定義方法了    這就是call和apply的一種運用*/

 

函數深入理解---函數的屬性length和方法call 和apply

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.