将事件处理程序绑定到JavaScript事件“console.log”

3

我的脚本在Javascript中从多个位置向控制台输出文本(见示例),我该如何将事件处理程序函数绑定到日志函数本身,以便每次触发事件时执行函数?

try {
    //some code
} catch(e) {
    console.log("error: "+e)
}

function x(n) {
    //some code
    console.log(str)
}

1
编写一个事件绑定并在函数中使用 console.log("Some message"); - Justin Wood
重新定义日志函数以触发可以绑定处理程序的事件。 - towr
1个回答

11

我会这样重写console.log(但将其存储在不同的变量中,以防我们想要使用它):

我会这样覆盖console.log(但是将其存储在另一个变量中,以防需要使用它):

var nativeLog = console.log.bind(console) //store native function

console.log = function(text){ //override
    nativeLog("<<<" + text)
}

在JavaScript中缩写console.log


您可以创建一个新事件,该事件从覆盖的console.log触发,例如http://jsfiddle.net/SzE34/。 - towr
@towr - 这将是您当前正在覆盖的函数的非法调用。 - adeneo
@adeneo,我不太明白你的意思,但我猜想这可能与TastySpaceApple更好地存储本机函数有关?我的意图更多是将“事件”添加到混合中。--- Firefox没有抱怨,但如果您能给我一些指针来改进我的JavaScript,我会很感激。 - towr
1
@towr - Chrome会抛出一个“非法调用”的错误,使用bind()会更好,否则创建事件并触发它的示例是正确的,也是实现的方法。 - adeneo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接