此文爲轉載,好像原出處的原文已經沒法打開了。markdown
本文解釋了bind 是如何工做的。爲了清晰,我對圖中的語法做了一些簡化(例如,省略函數調用操做符的參數類型),而且簡化了 bind 的實現.函數
參數綁定也能夠用於將類成員函數轉換成零參數的函數對象。猿類們都知道,非靜態成員函數須要一個隱式的 this 參數。這意味着須要綁定一個合適的類實例指針到這個函數對象:
post
相應地,隱式的 this 指針也能夠顯式地傳遞給須要一個參數的函數對象:
this
函數對象常常同時使用提早綁定的參數和調用時才提供的參數。這個能夠用成員函數來實現:
指針
固然也能夠使用非成員函數:
對象
有些時候函數對象被調用時會提供多餘的參數,而這些參數是目標函數不須要的。bind 會自動忽略這些多餘的參數:
blog
這些多餘的參數不須要必定在函數對象簽名的最後:
class
最後, bind 還容許從新組織函數對象的參數順序:
語法