1.做用:
call、apply和bind是Function對象自帶的三個方法,都是爲了改變函數體內部 this 的指向,區別是call()和apply()在調用函數以後會當即執行,而bind()方法調用並改變函數運行時上下文後,返回一個新的函數,供咱們須要時再調用。它們的第一個參數,都是指定一個運行時的上下文,也就是this的指向。bind,和call,指定this指向的參數後,能夠加入多個參數,而apply則接受一個數組做爲參數。
2.如何選用:
若是不須要關心具體有多少參數被傳入函數,選用apply()。
若是肯定函數可接收多少個參數,而且想一目瞭然表達形參和實參的對應關係,用call()。
若是咱們想要未來再調用方法,不需當即獲得函數返回結果,則使用bind()。數組