2016-01-24 48 views
0

我想了解.bind並提出以下代碼:的console.log返回一個額外的不確定

一個簡單的對象:

person = { 
    name:"Joe", 
    surname:"Something", 
    tool:"gun", 
    action: function(){ 
     console.log("shoot my wife"); 
    } 
} 

功能:

function police(){ 
    console.log("You are under arrest, " + this.name + " " + this.surname); 
} 

,並結合該人反對警方職能

var newPolice = police.bind(person); 

最後我安慰記錄它:

console.log(newPolice()); 

我得到想要的字符串(「你被捕了,喬的東西」),但我也得到一個不確定的,我不知道它是從哪裏過來。 (在代碼中,它是生成未定義的console.log(newPolice())

回答

3

這與bind無關。

當你調用newPolice()它記錄這樣的結果:

console.log("You are under arrest, " + this.name + " " + this.surname); 

當你調用console.log(newPolice());,你現在有 console.log報表時,他們之間,登錄:

  • 與以前相同
  • newPolice

newPolice返回值不具有return語句,所以它返回undefined