js 函數Function,js函數function

來源:互聯網
上載者:User

js 函數Function,js函數function

1.函數實際上是一個對象typeof functionName→function,通過instanceof判斷屬於哪個類。

2.函數名實際是一個指標,指向某個函數體。

3.函數內部有兩個對象:arguments和this。arguments不光可以指向函數傳進去的參數,並且,arguments.callee指向函數,比如函數outer,調用的時候可以寫為outer(),此時就可以更改為arguments.callee();

this指的是一個執行環境,比如我們單獨調用函數outer,那麼此時this就是window,如果我們採用call,或者apply就可以控制函數的調用對象,即this對象,

function outer(){} 

var obj = new Object();

outer.call(obj);這時this就指向的是obj。

我們可以看到兩個方法apply和call,都是方法的調用,方法可以通過方法名稱調用,為什麼還需要call和apply。因為他們可以控制this對象。其中如果outer.call(null)或者

outer.call(undefined),那麼此時則指向的是window對象。call和apply的區別在於第二個參數,apply的第二個參數只能是arguments和一個數組,而call則是一一列舉的,比如

outer.call(obj,"red","blue");而apply則是outer.apply(obj,["red","blue"]);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.