[英]How can I prevent the “console.log()” function from being overwritten?
我需要一種方法來防止console.log()
被更改/覆蓋(例如: console.log = function(){ return "Hi" }
。起初,我嘗試了Object.freeze(console.log)
但這並沒有做任何事情。
您可以凍結對象控制台而不是屬性。 Object.freeze(console)
您可以使用Object.defineProperty
使屬性不可寫且不可配置:
Object.defineProperty(console, 'log', { value: console.log, writable: false, configurable: false }); // Below won't work now, and will throw in strict mode: console.log = () => null; console.log('foobar');
您可能還希望使window.console
不可覆蓋:
Object.defineProperty(console, 'log', { value: console.log, writable: false, configurable: false }); Object.defineProperty(window, 'console', { value: console, writable: false, configurable: false }); // Below won't work now, and will throw in strict mode: console.log = () => null; // Below won't work either: window.console = { dir: () => null }; console.log('foobar'); console.log('barbaz');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.