在我的项目中,我正在使用正则表达式解析JavaScript代码,尤其是document.createElement
等动态函数。但我被建议包裹document.createElement
来制作钩子。我不明白怎么做
他们也提供了一个例子:
var f = document.createElement;
document.createElement = function(tagName){
console.log(tagName);
f.apply(document, arguments);
}
此代码正在跟踪document.createElement
我无法理解如何在我的代码中使用它可以有人帮助我
答案 0 :(得分:2)
该代码将存储对原始document.createElement
的引用,然后重新分配document.createElement
以指向新功能。
在这个新函数内部,它将记录第一个参数,然后调用原始document.createElement()
传递document
作为其this
值并传递arguments
的其余部分就像他们一样。
以下是我编码的方法......
(function() {
var documentCreateElement = document.createElement;
document.createElement = function(tagName) {
console.log(tagName);
return documentCreateElement.apply(document, arguments);
}
})();
如果console.log()
可能无法使用,您可能需要将该行更改为...
window.console && console.log && console.log(tagName);