我想在每次调用appendChild
时执行一些代码。假设我没有办法知道在何处或何时调用它。我想我可以使用原型来做到这一点,但是它们似乎没有用:
var actAppendChild = Element.prototype.appendChild;
Element.prototype.appendChild = function(node){
actAppendChild.call(this,node);
//execute custom code here...
console.log("foo");
}
document.body.appendChild(someNode);
但是,“ foo”不会打印到控制台,也不会打印到新原型函数中的任何代码。我究竟做错了什么?
最佳答案
我可以确认它即使在IE8 +,Safari,Chrome和Opera上也能正常工作。
只是一个建议:最好的做法是将代码包装在闭包中,以避免污染全局名称空间,如下所示:
(function(){
var actAppendChild = Element.prototype.appendChild;
....
}());
关于javascript - 更改JavaScript中宿主对象的原型(prototype)函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11268360/