আমি এটি লিখেছি:
//Make a copy of the old console.
var oldConsole = Object.assign({}, console);
//This function redefine the caller with the original one. (well, at least i expect this to work in chrome, not tested in others)
function setEnabled(bool) {
if (bool) {
//Rewrites the disable function with the original one.
console[this.name] = oldConsole[this.name];
//Make sure the setEnable will be callable from original one.
console[this.name].setEnabled = setEnabled;
} else {
//Rewrites the original.
var fn = function () {/*function disabled, to enable call console.fn.setEnabled(true)*/};
//Defines the name, to remember.
Object.defineProperty(fn, "name", {value: this.name});
//replace the original with the empty one.
console[this.name] = fn;
//set the enable function
console[this.name].setEnabled = setEnabled
}
}
দুর্ভাগ্যক্রমে এটি কঠোর মোডের ব্যবহারে কাজ করে না।
সুতরাং ব্যবহার করে console.fn.setEnabled = setEnabled
এবং তারপর console.fn.setEnabled(false)
যেখানে fn
প্রায় কোনও কনসোল ফাংশন হতে পারে। আপনার ক্ষেত্রে জন্য হবে:
console.log.setEnabled = setEnabled;
console.log.setEnabled(false);
আমি এটিও লিখেছি:
var FLAGS = {};
FLAGS.DEBUG = true;
FLAGS.INFO = false;
FLAGS.LOG = false;
//Adding dir, table, or other would put the setEnabled on the respective console functions.
function makeThemSwitchable(opt) {
var keysArr = Object.keys(opt);
//its better use this type of for.
for (var x = 0; x < keysArr.length; x++) {
var key = keysArr[x];
var lowerKey = key.toLowerCase();
//Only if the key exists
if (console[lowerKey]) {
//define the function
console[lowerKey].setEnabled = setEnabled;
//Make it enabled/disabled by key.
console[lowerKey].setEnabled(opt[key]);
}
}
}
//Put the set enabled function on the original console using the defined flags and set them.
makeThemSwitchable(FLAGS);
সুতরাং আপনাকে কেবল FLAGS
পূর্বনির্ধারিত মান (উপরের কোডটি কার্যকর করার আগে) লাগাতে হবে , যেমন FLAGS.LOG = false
এবং লগ ফাংশনটি ডিফল্টরূপে অক্ষম হয়ে যায়, এবং তবুও আপনি এটি কল করতে সক্ষম করতে পারেনconsole.log.setEnabled(true)