콜백 함수도 함수로서 호출이다
콜백 함수로 객체의 메서드를 전달하더라도 그 메서드는 메서드가 아닌 "함수로서 호출" 된다! 어떤 함수의 인자에 객체의 메서드를 전달하더라도 이는 결국 메서드가 아닌 "함수"일 뿐이다. 즉, 객체의 메서드를 콜백 함수로 전달하면 (별도의 바인딩이 없는 한) 해당 객체를 this로 바라볼 수 없게 된다는 것! let obj = { val: [1, 2, 3], methods: function(v, i) { console.log(this, v, i); } }; /* 메서드로서 호출 */ obj.methods(1, 2); // obj 1 2 /* 콜백함수로 객체의 메서드를 전달하더라도(obj.methods) 함수로서 호출 */ [5,6,7].forEach(obj.methods); // window 5 0 // ..
2022. 2. 26.