작성
·
188
0
안녕하세요.
수업과 관련된 질문은 아니지만 this 바인딩이 좀 햇갈려서 질문드립니다.
아래와 같은 코드가 있다고 했을 때, myObj.runFunc 메소드에 매개 함수 func의 내부 코드에서는 절대 myObj.data 프로퍼티에 접근할 수 없는 건가요? 혹시 접근할 수 있는 방법이 존재하나요?
const myObj = {
data : 200,
runFunc : function(func){
func();
}
};
myObj.runFunc(function() { console.log(this.data) });
답변 1
0
인자로 전달 되는 함수에 this를 myObj 객체로 바인딩하면 하면 되지 않을까요?
예를들어
const callbackFunc = function() { console.log(this.data) }.bind(myObj);
myObj.runFunc(callbackFunc);
또는
myObj.runFunc(function() { console.log(this.data) }.bind(myObj));