簡體   English   中英

如何防止“console.log()”函數被覆蓋?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM