我想覆盖对象的一个功能,使其当前功能保持不变。请参阅以下示例:
假设我们想在开发人员使用document.write时记录文本:
document.write = function (text) {
console.log("You have written ["+ text + "] to document");
//Now call actual document.write
document.write(text);
}
//Lets use the above function
document.write("America");
在上面的代码中,必须将“America”一词写入文档以及控制台。 有可能吗?如何做到这一点?
答案 0 :(得分:2)
首先缓存函数:
var write = document.write.bind(document)
document.write = function (text) {
console.log("You have written ["+ text + "] to document");
//Now call actual document.write
write(text);
}
//Lets use the above function
document.write("America");
替换原生函数不是很好的做法,我建议反对它,特别是document.write
,请看这里Why is document.write considered a "bad practice"?