在 JavaScript 中更改主机对象的原型函数
Change a host object's prototype function in JavaScript?
我想
在每次调用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;
....
}());
相关文章:
- 重载JS'firefox中的对象原型
- 带有对象/原型的链式承诺(Q延期)
- 别名或以其他方式合并两个具有不同名称的相同对象原型
- 创建后指定对象原型
- javascript对象原型与jquery冲突
- 为什么我要将函数添加到对象原型中,而不是将其添加到对象中
- 基本对象/原型语法问题
- Javascript对象/原型.我的理解错了吗
- ES6 const,用于在JavaScript中创建对象原型;这是一种模式吗
- 在角度表达式中使用对象原型
- 对象原型和继承
- 为什么javascript对象原型被称为“fn”
- Uncaught TypeError:对象原型在Symfony 2中只能是Object或ExtJS为null
- 在Javascript中将对象原型函数绑定到对象
- 对象原型在Canvas Game中不起作用
- 如何获取Javascript对象原型的属性
- 为对象原型提供一个方法,该方法指向对象自身属性的值
- 向对象原型添加命名空间方法
- 在Vanilla Javascript中使用窗体中的对象原型创建多个用户
- Javascript对象原型错误