在浏览这篇文章的时候,因为要边测试边记录嘛。自然就在控制台测试代码。然后代码中的alert(...)都被转换成了console.log(...)看了他的代码。是这样把alert()转化的:
window.alert = function(n) {
try {
console.log("alert: " + n)
} catch (t) {}
return !0
}
因为之前没见过,所以又学习到了。但是,我之前看过萧井陌萧大的代码,他把console.log()改写成了var log = console.log.bind(console),(算是一种封装?)就可以用log()直接调用,比较方便。
问题如下:
所以按照这个思路,我想是不是可以把window.alert也这样处理一下就可以达到文章中的效果(就是没有检错)?
我的源码如下:
window.alert = console.log.bind(console)
检验之后确实能实现不弹窗,然后在控制台输出的效果。
但是把页面的这个alert效果改了,总得要有办法还原。查了一下解绑用unbind()。但是学艺不精。直接把上面那行代码改成:
window.alert = console.log.unbind(console)
会报console.log.unbind is not a function 的错。但是不知道怎么处理才能让他解绑,还是说我这样的方法无法把alert的效果还原了?
这里先谢谢各位辣!
不负相思意
相关分类