2011-11-16 50 views
124

पर अवैध प्रार्थना आप क्रोम कंसोल में इस चलाते हैं:लेखन त्रुटि: console.log.apply

// TypeError: Illegal Invocation 

क्यों:

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

क्रोम तुम वापस एक त्रुटि देता है? (Chrome 15 पर परीक्षण किया गया के माध्यम से OSX)

उत्तर

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 (console) –

+3

का उपयोग कर सकते हैं, तो क्या आप ES5 का समर्थन करने वाले सभी ब्राउज़रों में 'console.info.call (console, "stuff") 'का उपयोग कर सकते हैं? – mucaho

+2

वही लागू होता है: 'console.info.apply (कंसोल, तर्क)' – PeterM

संबंधित मुद्दे