javascript--bind的用法

原文鏈接:http://www.kingpika.top:5599/post/80

與call很相似,都可以改變函數體內this的指向。

bind會創建一個新函數,稱爲綁定函數,當調用這個綁定函數的時候,綁定函數會以創建它時傳入bind()方法的第一個參數作爲this。傳入bind()方法的第二個以及以後的參數加上綁定函數運行時本身的參數按照順序作爲原函數的參數來調用原函數。

與call不同,它返回的是函數

 

舉個栗子:

用法舉例:

之所以這麼寫,將自身的方法傳遞給自身是因爲:addData是L.Control.Elevation的私有方法而不是公有,直接在此寫addData顯然是不行,而el.addData要運行是需要參數的,如果在這裏指定了參數:el.addData(參數),則返回的是一個值而不是我們需要的函數。

因此根據bind的特性,當不指定參數時調用的是前方的對象並且返回的是函數,就可以解決這個“需要一個函數去做響應函數,不想再寫一個而是想從別的對象那裏借,但是那個函數並不是使用上下文this而是要一個參數”情境下的問題,這時候使用bind:擁有方法的對象.那個函數.bind(擁有方法的對象)

當然那個方法裏也得靈活處理才行,如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章