探索javascript----this的指向問題

*this只和執行環境有關,和聲明環境無關。誰調用this,this就指向誰。app

*this的指向分爲四種:函數

  1.做爲普通函數調用:this

   

  2.做爲對象的方法調用:spa

     指向對對象,但用新變量引用該方法時候,又變爲普通函數調用,指向window:對象

   

   解釋:方法其實就是一個對象中,屬性賦了一個函數,而o.getN就表明這個函數,把它賦給一個新變量調用之,變成了普通函數調用。blog

     3.在構造函數中,指向new運算符計算出來的實例對象。
get

  4.apply調用:變量

    apply的做用是改變函數的調用對象,它的第一個參數就表示改變後的調用對象,因此,this就指向第一個參數。構造函數

    *當apply的參數爲空或null時,默認調用全局函數。引用

    *有時候咱們使用call和apply的目的並不在於指定this的指向,而是借用其餘對象的方法,那麼咱們就傳入null來代替某個具體的對象。

    Math.max.apply(null,[1,2,33,4,6]);//33

相關文章
相關標籤/搜索