call、apply、bind的區別

  

  • call 和 apply 特性同樣數組

    • 都是用來調用函數,並且是當即調用app

    • 可是能夠在調用函數的同時,經過第一個參數指定函數內部 this 的指向函數

    • call 調用的時候,參數必須以參數列表的形式進行傳遞,也就是以逗號分隔的方式依次傳遞便可this

    • apply 調用的時候,參數必須是一個數組,而後在執行的時候,會將數組內部的元素一個一個拿出來,與形參一一對應進行傳遞spa

    • 若是第一個參數指定了 null 或者 undefined 則內部 this 指向 windowcode

  • bindit

    • 能夠用來指定內部 this 的指向,而後生成一個改變了 this 指向的新的函數class

    • 它和 call、apply 最大的區別是:bind 不會調用call

    • bind 支持傳遞參數,它的傳參方式比較特殊,一共有兩個位置能夠傳遞apply

        1. 在 bind 的同時,以參數列表的形式進行傳遞

        1. 在調用的時候,以參數列表的形式進行傳遞

      • 那到底以誰 bind 的時候傳遞的參數爲準呢仍是以調用的時候傳遞的參數爲準

      • 二者合併:bind 的時候傳遞的參數和調用的時候傳遞的參數會合併到一塊兒,傳遞到函數內部

相關文章
相關標籤/搜索