iT邦幫忙

0

js讓自己的物件繼承特定的方法

讓自己的物件繼承特定的方法
範例大概是這樣
var debug = window.console;
我的狀況大概就是在特定js檔案
用自己的物件繼承console的方法?

我用debug.log印東西
但是當我不需要印東西時
要能夠讓全部的debug.log失效

我是在在下面加一行
debug.log = function(){};
但是我這樣做會影響到console這個物件
那我在其他檔案用console.log時就會有問題因為被蓋掉了

等於是

a.js

// import b.js
console.log("a.js")
// console.log("a.js")需要正常動作

b.js

var debug = window.console;

debug.log = function(){}; 
// 讓下面的所有debug.log失效,但會影響到整個window.console.log,需要用debug.log的話就註解起來

debug.log(0);
debug.log(1);
debug.log(2);
debug.log(3);
debug.log(4);
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0

{} 可以換成自己的物件

var debug = Object.assign({},window.console);

感恩

0
咖咖拉
iT邦好手 1 級 ‧ 2022-01-22 16:22:00

別寫死window.console

開發完直接把debug 裡面的console.log 遮掉就好

const debug = {
    log: function log(e) {
    console.log(e)//遮掉
    }
}



debug.log(1);
debug.log(2);
debug.log(3);
debug.log(4);
console.log(5)

感恩,不過印出來的行數不會是原本所在的行數

咖咖拉 iT邦好手 1 級 ‧ 2022-01-23 06:53:50 檢舉

你也可以這樣寫

var debug = window.console;

debug = {
    log:function(){}
}

debug.log(0);
debug.log(1);
debug.log(2);
debug.log(3);
debug.log(4);
console.log(5)

我要發表回答

立即登入回答