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) 
     } 
     } 
    }) 
관련 문제