2011-11-16 2 views
124

에 불법 호출하면 크롬 콘솔에서이 작업을 실행하는 경우 :형식 오류 : console.log.apply

// TypeError: Illegal Invocation 

이유 :

console.log.apply(null, [array]) 

크롬 다시 오류를 준다? (OSX를 통해 크롬 15에서 테스트)

답변

176
그것은 경우에 작동하지 않을 수 있습니다

실행 컨텍스트는 다른 개체에 콘솔에서 변경하는 경우 :

This is expected because console.info expects its "this" reference to be console, not window.

console.info("stuff") 
stuff 
undefined 
console.info.call(this, "stuff") 
TypeError: Illegal invocation 
console.info.call(console, "stuff") 
stuff 
undefined 

This behavior is expected.

https://bugs.chromium.org/p/chromium/issues/detail?id=48662

+24

당신이 함수로 사용해야하는 경우 console.info.bind (콘솔) –

+3

을 사용할 수 있으므로 ES5를 지원하는 모든 브라우저에서'console.info.call (console, "stuff")'을 사용할 수 있습니까? – mucaho

+2

동일합니다 :'console.info.apply (console, arguments)' – PeterM