나는 항상 console.log
을 콜백 매개 변수로 일부 함수에 전달하려고 할 때 bind()
메서드를 사용하여 console
을 바인딩하지 않으면 작동하지 않는다는 것을 기억합니다. 예를 들어console.log()는 콘솔이 아닌 다른 객체에서 호출 됨
:
const callWithTest = callback => callback('test');
callWithTest(console.log); // That didn't use to work.
callWithTest(console.log.bind(console)); // That worked (and works) fine.
Uncaught TypeError: Illegal invocation in javascript를 참조하십시오.
그러나 최근에 콘솔 외의 다른 개체에서 호출 할 때도 console.log()
이 잘 작동하는 것으로 나타났습니다. 예 :
console.log.call(null, 'test');
logs 'test'
언제 그리고 왜 변경 되었습니까? 사양에서 그것에 대해 아무 말도하지 않습니까?
로깅 API를 그들 모두는 등 콜백, foreach는 방법을 처리
이 더 이상 포함되어 에러 없음 인수로 전달 될 수 있도록 호출 기능이 있어야한다 :
Btw, 오페라 (오래된 것)는 연령대가 있기 때문에 ... – Bergi