聊聊Function的bind()

bind顧名思義,綁定。

bind()方法會創(chuàng)建一個新函數(shù),當這個新函數(shù)被調(diào)用時,它的this值是傳遞給bind()的第一個參數(shù),它的參數(shù)是bind()的其他參數(shù)和其原本的參數(shù)。

上面這個定義最后一句有點繞,我們來理一下。

bind()接受無數(shù)個參數(shù),第一個參數(shù)是它生成的新函數(shù)的this指向,比如我傳個window,不管它在何處調(diào)用,這個新函數(shù)中的this就指向window,這個新函數(shù)的參數(shù)就是bind()的第二個、第三個、第四個....第n個參數(shù)加上它原本的參數(shù)。(行吧,我自己都蒙圈了)

我們還是看看栗子比較好理解,舉個bind()最基本的使用方法:

復制代碼
this.x = 9; var module = {
  x: 81,
  getX: function() { return this.x; }
};

module.getX(); // 返回 81 var retrieveX = module.getX;
retrieveX(); // 返回 9, 在這種情況下,"this"指向全局作用域 //
        		

網(wǎng)友評論