2011-11-16 5 views
124

üzerinde Yasadışı İnvokasyon Eğer krom konsolunda bu çalıştırırsanız:TypeError: console.log.apply

// TypeError: Illegal Invocation 

Neden:

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

Krom geri bir hata verir? (OSX aracılığıyla Chrome 15 üzerinde test)

cevap

176
Bu durumlarda çalışmayabilir

yürütme içeriği başka bir nesneye konsoldan değiştiği:

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

bir fonksiyonu olarak kullanmanız gerekiyorsa , konsol.info.bind (konsol) –

+3

'u kullanabilirsiniz, bu yüzden 'konsol.info.call (konsol," malzeme ")' yi ES5'i destekleyen tüm tarayıcılarda kullanabilirsiniz? – mucaho

+2

Aynı işlem geçerli olur: 'console.info.apply (konsol, argümanlar)' – PeterM