【发布时间】:2012-07-06 20:03:38
【问题描述】:
所以我劫持了控制台功能:
var log = Function.prototype.bind.call(console.log, console);
console.log = function (a) {
log.call(console, a);
submitmsg("Log", a);
};
这达到了预期的效果。但是,它也会返回“未定义”作为意外奖励。
我不明白为什么这导致我认为这里有一些小问题。
Hello world 按预期由log.call(console, a) 生成
submitmsg() 是我的自定义函数
这正是我想要的。不过,正如我所说,我有点担心由于我不明白的原因它也会返回“未定义”。
注意: OP 发布了以下代码作为问题的答案。答案上的 cmets 已移至问题上的 cmets。
那么正确的代码应该如下吗?
var log = Function.prototype.bind.call(console.log, console);
console.log = function (a) {
return log.call(console, a);
submitmsg("Log", a)
};
【问题讨论】:
-
这仍然返回“未定义”
-
那是因为
log.call返回undefined。这就是为什么我不确定您要达到什么目的......本机console.log方法返回undefined。你想返回什么? -
对不起,我重新提交了更详细的内容
-
在您编辑问题后,如果我调用真正的
console.log方法,我会在控制台中得到完全相同的结果。那是因为console.log返回undefined。 -
现在
submitmsg根本不起作用,是故意的吗?
标签: javascript