我想挂钩Node
构造函数。是否可以使用我自己的Node构造函数覆盖公共Node构造函数?
目前仅在chrome / firefox中进行测试
(function() {
var _Node = window.Node;
var Node = function() {
Event.trigger("nodeCreation", this, arguments); // pseudocode
_Node.apply(this, arguments);
}
window.Node = Node;
console.log(document.createElement("div") instanceof _Node); // true
console.log(document.createElement("div") instanceof Node); // false
}());
我完全清楚如果我弄错了会有多危险。我也知道,如果我能做对的话,这是非常有用的。
是否有其他方法可以覆盖原生DOM对象。扩展原型并不像覆盖构造函数那样有用
答案 0 :(得分:1)
不。您无法为DOM Node或任何其他DOM对象重新定义构造函数(但您可以为JavaScript对象执行此操作)。
此外,尝试重新定义DOM对象构造函数是绝对无用的,因为它们通常不能直接调用(除了Image和其他几个),因此参数的问题是无关紧要的。可以使用Mutation Events来跟踪DOM更改。