0

我有一個函數,它需要一個對象屬性,在這個對象中,我想傳遞一個函數作爲屬性之一。我希望在調用屬性時執行該函數。我需要綁定函數,因爲這個上下文在函數執行之前會丟失。如何綁定函數作爲對象的屬性

var myfunction = function() { 
     console.log("Something"); 
    } 

    // this works 
    this.HeaderService.setState({ 
     leftButton: { 
     click: this.myfunction.bind(this) 
     } 
    }); 

    // can't get this to work 
    const self = this; 
    this.HeaderService.setState({ 
     leftButton: { 
     click() { 
      return (function() { 
       console.log("something"); 
      }).bind(this) 
     } 
     } 
    }) 

我可以得到函數表達式工作,但我不能得到我想要的定義函數的性質點擊的價值的第二種情況。我該怎麼做呢?

+1

也許我失去了一些東西,但不能使用只是定義點擊如箭功能?例如'點擊:()=> console.log(「someting」)' –

+0

現在的問題到底是什麼?你能展示你希望你的最終對象看起來如何嗎? – Aron

+0

我現在的問題是在第二種情況下,函數從未被調用,即從未記錄過的東西 – lboyel

回答

0

繼續什麼@JamieTorres建議箭頭功能修復該問題

const self = this; 
    this.HeaderService.setState({ 
     leftButton: { 
     click:() => { 
      return (function() { 
       console.log("something"); 
      }).bind(this) 
     } 
     } 
    })