聊聊Function的bind()

bind顧名思義,綁定。

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

上面這個(gè)定義最后一句有點(diǎn)繞,我們來理一下。

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

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

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

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

網(wǎng)友評論