Javascript 调用window.Element.prototype.className时调用getter
我试图在每次调用Element.className时调用一个getter。 我说的是:Javascript 调用window.Element.prototype.className时调用getter,javascript,setter,getter,Javascript,Setter,Getter,我试图在每次调用Element.className时调用一个getter。 我说的是: Object.defineProperty(window.Element.prototype, "className", { get(value){ console.log(value); debugger; }, set(value){ console.log(value);
Object.defineProperty(window.Element.prototype, "className", {
get(value){
console.log(value);
debugger;
},
set(value){
console.log(value);
debugger;
}
});
但由于某种原因,它不起作用。
当我调用somenode.className时,我没有调用getter。
有什么想法吗?className是实例的一个值,因此不会在原型中查找它,而是在对象本身中:
lookup --> Instance --> Prototype
innerHTML querySelector
className querySelectorAll
id
... ...
您必须在您使用的每个实例上定义getter/setter。哦,我明白了,所以我需要实际将“window.Element.prototype”替换为“Mynode”,对吗?有没有可能我可以用不同的方式来做?也许可以将这个getter添加到更高的位置,这样在创建实例时它就已经包含了我的getter@avi因此,您必须重写
元素
构造函数,我不确定它是否在所有情况下都有效……好的,非常感谢!